编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

NPOI库使用指南

wxchong 2024-06-22 21:09:14 开源技术 11 ℃ 0 评论

NPOI 是 Apache POI 项目的 .NET 版本,它提供了读写Excel和Word等Office文档的能力。以下是NPOI的一些核心概念和使用方法。

安装NPOI

通过NuGet包管理器安装NPOI:

Install-Package NPOI

创建Excel文档

创建一个新的Excel文件:

using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO;

IWorkbook workbook = new XSSFWorkbook(); // 或者 HSSFWorkbook(), 取决于你需要的Excel版本
ISheet sheet = workbook.CreateSheet("MySheet");

IRow row = sheet.CreateRow(0);
ICell cell = row.CreateCell(0);
cell.SetCellValue("Hello, NPOI!");

using (FileStream stream = new FileStream("HelloWorld.xlsx", FileMode.Create, FileAccess.Write))
{
    workbook.Write(stream);
}

读取Excel文档

读取一个现有的Excel文件:

using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO;

IWorkbook workbook = new XSSFWorkbook(new FileStream("HelloWorld.xlsx", FileMode.Open, FileAccess.Read));
ISheet sheet = workbook.GetSheetAt(0);

IRow row = sheet.GetRow(0);
ICell cell = row.GetCell(0);

string value = cell?.ToString();

格式化单元格

设置单元格的格式:

cell.SetCellValue(123.45);
cell.CellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("#,##0.00");
cell.CellStyle.BorderTop = BorderStyle.Thin;
cell.CellStyle.BorderLeft = BorderStyle.Thin;
cell.CellStyle.BorderRight = BorderStyle.Thin;
cell.CellStyle.BorderBottom = BorderStyle.Thin;

添加数据

向工作表添加数据:

IRow row = sheet.CreateRow(rowIndex);
ICell cell = row.CreateCell(cellIndex);
cell.SetCellValue("Some data");

操作公式

在Excel中使用公式:

IRow row = sheet.CreateRow(0);
ICell cell = row.CreateCell(0);
cell.SetCellFormula("SUM(B1:B10)");

保存Excel文档

保存工作簿:

using (FileStream stream = new FileStream("ModifiedHelloWorld.xlsx", FileMode.Create, FileAccess.Write))
{
    workbook.Write(stream);
}

workbook.Close();

注意事项

  • NPOI 支持Excel 2003 (.xls) 和 Excel 2007+ (.xlsx) 格式。
  • 在处理大文件或大量数据时,应注意资源管理,确保及时释放文件流和工作簿资源。
  • NPOI 的 API 设计与 Apache POI 相似,如果您熟悉 Java 的 POI 库,那么使用 NPOI 将会比较容易。

通过这些基础知识,您可以开始使用 NPOI 在C#中进行Excel文档的读写操作。随着实践的深入,您将能够更熟练地利用 NPOI 提供的各种功能来处理复杂的Office文档。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表