使用NPOI操作excel

首先添加引用NPOI.dll
using NPOI.HSSF.UserModel; //HSSFWorkbook
using NPOI.SS.UserModel; // ISheet IRow

之后可以在代码中利用NPOI来对Excel进行操作

读excel:

HSSFWorkbook wb1 = new HSSFWorkbook();
ISheet sheet1 = wb1.CreateSheet();

using (FileStream fsRead = File.OpenRead(@"d:/myxls.xls"))
{
    wb1 = new HSSFWorkbook(fsRead);
    sheet1 = wb1.GetSheetAt(0);
    NumAll = sheet1.LastRowNum + 1;    //获取文本最后一行具体为多少,然后加一
    if (NumAll != 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 NPOI 操作 Excel,可以通过设置行高的方式来自动调整行高。具体步骤如下: 1. 获取工作表对象: ```csharp ISheet sheet = workbook.GetSheet("Sheet1"); ``` 2. 创建单元格样式对象: ```csharp ICellStyle style = workbook.CreateCellStyle(); ``` 3. 设置单元格样式对象的自动换行属性为 true: ```csharp style.WrapText = true; ``` 4. 遍历需要设置行高的行,计算每行的高度并设置: ```csharp for (int i = 0; i < sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); if (row != null) { row.HeightInPoints = sheet.DefaultRowHeightInPoints; int numLines = 1; foreach (ICell cell in row.Cells) { if (cell != null && cell.CellType == CellType.String) { string text = cell.StringCellValue; if (text.Contains("\n")) { numLines = Math.Max(numLines, text.Split('\n').Length); } } } row.HeightInPoints = sheet.DefaultRowHeightInPoints * numLines; } } ``` 其中,`sheet.DefaultRowHeightInPoints` 表示默认行高,`numLines` 表示行中需要显示的行数。在遍历每个单元格时,如果单元格中包含换行符 `\n`,则计算需要显示的行数。最后将计算得到的行高设置给该行即可。 完整代码示例如下: ```csharp using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using System.IO; namespace NPOIDemo { class Program { static void Main(string[] args) { using (FileStream stream = new FileStream("test.xlsx", FileMode.Open, FileAccess.ReadWrite)) { XSSFWorkbook workbook = new XSSFWorkbook(stream); ISheet sheet = workbook.GetSheet("Sheet1"); ICellStyle style = workbook.CreateCellStyle(); style.WrapText = true; for (int i = 0; i < sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); if (row != null) { row.HeightInPoints = sheet.DefaultRowHeightInPoints; int numLines = 1; foreach (ICell cell in row.Cells) { if (cell != null && cell.CellType == CellType.String) { string text = cell.StringCellValue; if (text.Contains("\n")) { numLines = Math.Max(numLines, text.Split('\n').Length); } } } row.HeightInPoints = sheet.DefaultRowHeightInPoints * numLines; } } workbook.Write(stream); } } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值