鱼C论坛

 找回密码
 立即注册
查看: 76|回复: 2

[已解决]C#如何利用NPOI操作EXcel

[复制链接]
发表于 2025-4-18 08:22:52 | 显示全部楼层 |阅读模式
60鱼币
最佳答案
2025-4-18 08:22:53

    引入 NPOI 库(通过 NuGet 安装)。
    创建工作簿和工作表。
    填充数据到单元格。
    应用样式(可选)。
    保存工作簿到文件。
    读取现有文件并修改内容。
    处理不同数据类型和格式。
    错误处理和资源管理。

最佳答案

查看完整内容

引入 NPOI 库(通过 NuGet 安装)。 创建工作簿和工作表。 填充数据到单元格。 应用样式(可选)。 保存工作簿到文件。 读取现有文件并修改内容。 处理不同数据类型和格式。 错误处理和资源管理。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-18 08:22:53 | 显示全部楼层    本楼为最佳答案   

    引入 NPOI 库(通过 NuGet 安装)。
    创建工作簿和工作表。
    填充数据到单元格。
    应用样式(可选)。
    保存工作簿到文件。
    读取现有文件并修改内容。
    处理不同数据类型和格式。
    错误处理和资源管理。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-18 08:23:43 | 显示全部楼层
C#使用NPOI操作Excel简明教程

  • 安装NPOI
    通过NuGet安装以下两个包:
    NPOI
    NPOI.OOXML(处理xlsx格式)
  • 创建Excel文件

    1. using NPOI.HSSF.UserModel;  // xls格式
    2. using NPOI.XSSF.UserModel; // xlsx格式
    3. using NPOI.SS.UserModel;

    4. // 创建Workbook
    5. IWorkbook workbook = new XSSFWorkbook(); // xlsx格式
    6. // IWorkbook workbook = new HSSFWorkbook(); // xls格式

    7. // 创建Sheet
    8. ISheet sheet = workbook.CreateSheet("Sheet1");

    9. // 创建行(第0行)
    10. IRow row = sheet.CreateRow(0);

    11. // 设置单元格值
    12. row.CreateCell(0).SetCellValue("姓名");
    13. row.CreateCell(1).SetCellValue("年龄");

    14. // 保存文件
    15. using (FileStream fs = new FileStream("test.xlsx", FileMode.Create))
    16. {
    17.     workbook.Write(fs);
    18. }
    复制代码

  • 读取Excel文件

    1. using (FileStream fs = new FileStream("test.xlsx", FileMode.Open))
    2. {
    3.     IWorkbook workbook = new XSSFWorkbook(fs);
    4.     ISheet sheet = workbook.GetSheetAt(0);

    5.     for (int i = 0; i <= sheet.LastRowNum; i++)
    6.     {
    7.         IRow row = sheet.GetRow(i);
    8.         if (row == null) continue;
    9.         
    10.         for (int j = 0; j < row.LastCellNum; j++)
    11.         {
    12.             ICell cell = row.GetCell(j);
    13.             string value = cell?.ToString() ?? "";
    14.             Console.Write(value + "\t");
    15.         }
    16.         Console.WriteLine();
    17.     }
    18. }
    复制代码

  • 常用操作
    • 设置单元格格式:ICellStyle
    • 合并单元格:sheet.AddMergedRegion
    • 设置列宽:sheet.SetColumnWidth(0, 20 * 256)
    • 插入图片:workbook.AddPicture()



常见问题
  • 为什么生成的文件用Excel打不开?
    → 确保文件流正确关闭,检查文件扩展名(xls/xlsx)与Workbook类型匹配
  • 为什么数字显示为文本?
    → 使用cell.SetCellType(CellType.Numeric)设置单元格类型
  • 处理大数据量时内存不足?
    → 使用SXSSFWorkbook进行流式处理(xlsx专用)


官方文档:https://github.com/nissl-lab/npoi

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 17:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表