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。希望这篇文章对你有所帮助。