C#.NetCore NPOI 导出excel 单元格内容换行

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

在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);
        }
    }
}
 

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hefeng_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值