C#基于NPOI操作Excel

C#基于NPOI操作Excel

1. 简介

NPOI是一个开源的.NET库,可以用于读写Microsoft Office格式的文件,包括Excel。它提供了基于.NET的API,使得我们可以轻松地在C#中操作Excel文件。

2. 安装NPOI

要使用NPOI,首先需要在C#项目中添加NPOI的引用。可以通过NuGet包管理器完成安装,也可以手动下载并添加项目引用。

方法一:使用NuGet包管理器安装

Install-Package NPOI

方法二:手动下载添加引用

在NPOI的GitHub页面下载最新版本的NPOI库。

解压并找到NPOI.dll文件。

在C#项目中右键点击“引用”。

选择“添加引用”并浏览到NPOI.dll文件的位置。

点击确定以完成添加引用。

3. 创建Excel文件

要创建一个新的Excel文件,我们首先需要创建一个Workbook对象,并指定要使用的Excel格式。

3.1 创建Workbook

using NPOI.HSSF.UserModel; // 使用Excel97-2003格式,扩展名为.xls

using NPOI.XSSF.UserModel; // 使用Excel2007以上格式,扩展名为.xlsx

HSSFWorkbook workbook = new HSSFWorkbook(); // Excel97-2003

XSSFWorkbook workbook = new XSSFWorkbook(); // Excel2007以上

3.2 创建Sheet

接下来,我们可以在Workbook中创建一个Sheet,要注意的是,Sheet的名称在Workbook中必须唯一。

ISheet sheet = workbook.CreateSheet("Sheet1");

3.3 创建行和单元格

在Sheet中,我们可以创建行和单元格,并为单元格设置值。

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

ICell cell = row.CreateCell(0); // 创建第一列的单元格

cell.SetCellValue("Hello World"); // 设置单元格的值

需注意,行和列的索引都是从0开始计数。

3.4 保存Excel文件

在操作完Excel文件后,我们需要将其保存到磁盘上。

using System.IO;

using (FileStream fs = new FileStream("example.xls", FileMode.Create))

{

workbook.Write(fs);

}

在这个例子中,我们将Workbook保存为一个名为example.xls的Excel文件。

4. 读取Excel文件

除了创建Excel文件,NPOI还提供了读取现有Excel文件的功能。

4.1 打开Excel文件

要打开一个Excel文件,我们首先需要创建一个对应的Workbook对象,并将Excel文件作为参数传递给它。

using (FileStream fs = new FileStream("example.xlsx", FileMode.Open))

{

XSSFWorkbook workbook = new XSSFWorkbook(fs);

}

4.2 获取Sheet

在打开的Workbook中,我们可以获取指定名称的Sheet。

ISheet sheet = workbook.GetSheet("Sheet1");

4.3 获取行和单元格的值

在Sheet中,我们可以根据行和列的索引获取对应的单元格值。

IRow row = sheet.GetRow(0); // 获取第一行

ICell cell = row.GetCell(0); // 获取第一列的单元格

string value = cell.StringCellValue; // 获取单元格的值

4.4 遍历所有行和单元格

我们也可以使用循环遍历所有行和单元格。

int rowCount = sheet.PhysicalNumberOfRows; // 获取行数

for (int i = 0; i < rowCount; i++)

{

IRow row = sheet.GetRow(i); // 获取当前行

if (row != null) // 判断是否为空行

{

int cellCount = row.PhysicalNumberOfCells; // 获取单元格数

for (int j = 0; j < cellCount; j++)

{

ICell cell = row.GetCell(j); // 获取当前单元格

string value = cell.StringCellValue; // 获取单元格的值

// 处理单元格的值

}

}

}

结论

使用NPOI库,我们可以方便地在C#中操作Excel文件。无论是创建新的Excel文件,还是读取现有的Excel文件,NPOI都为我们提供了简单易用的API。希望这篇文章对你有所帮助。

后端开发标签