如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
在NPOI中实现Excel单元格内容换行,可经过以下手段建立,本文介绍代码,仅供参考。
方法介绍
1、设置自动换行样式
通过ICellStyle.WrapText = true属性开启单元格自动换行功能,同时建议设置对齐方式为居中以优化显示效果。
2、处理换行符
若内容含\n换行符,需确保单元格样式已启用自动换行,否则换行符会展示为空格。
对于HTML换行符<br>,可先替换为\n再赋值给单元格。
3、调整行高
自动换行后需手动调整行高以适应内容,可经过row.HeightInPoints属性设置(如原高度的2倍)。
C#示例代码如下:
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
public class ExcelExporter
{
public void ExportWithWrapText(string filePath)
{
// 创建工作簿
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
// 创建带换行样式
ICellStyle wrapStyle = workbook.CreateCellStyle();
wrapStyle.WrapText = true; // 关键设置
wrapStyle.Alignment = HorizontalAlignment.Center;
wrapStyle.VerticalAlignment = VerticalAlignment.Center;
// 创建行并设置内容
IRow row = sheet.CreateRow(0);
ICell cell = row.CreateCell(0);
cell.SetCellValue("第一行文本\n第二行文本"); // 使用\n换行
cell.CellStyle = wrapStyle;
// 调整行高
row.HeightInPoints = 2 * sheet.DefaultRowHeightInPoints;
// 保存文件
using (FileStream fs = new FileStream(filePath, FileMode.Create))
{
workbook.Write(fs);
}
}
}
4、完成要点说明
必须同时设置WrapText和行高才能正确显示多行内容。
支持依据程序生成的换行符或用户输入的ALT+ENTER换行符。
若内容来自HTML,需先将<br>转换为\n再赋值。
5、完整C# .NetCore 示例代码
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
public class ExcelExporter
{
public void ExportWithWrapText(string filePath)
{
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
// 创建带换行样式
ICellStyle wrapStyle = workbook.CreateCellStyle();
wrapStyle.WrapText = true; // 关键设置
wrapStyle.Alignment = HorizontalAlignment.Center;
wrapStyle.VerticalAlignment = VerticalAlignment.Center;
// 创建行并设置内容
IRow row = sheet.CreateRow(0);
ICell cell = row.CreateCell(0);
cell.SetCellValue("第一行文本\n第二行文本"); // 使用\n换行
cell.CellStyle = wrapStyle;
// 调整行高
row.HeightInPoints = 2 * sheet.DefaultRowHeightInPoints;
// 保存材料
using (FileStream fs = new FileStream(filePath, FileMode.Create))
{
workbook.Write(fs);
}
}
}
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。