C#NPOI excel操作
时间: 2023-10-27 21:08:09 浏览: 248
C# NPOI是一个用于在C#中操作Excel的库。NPOI的行和列的索引都是从0开始的。NPOI支持读取Excel文件的两种格式:HSSF(.xls)和XSSF(.xlsx)。使用NPOI进行Excel操作的步骤如下:
1. 首先,将NPOI.dll导入你的项目中。在解决方案资源管理器中,右键点击项目,选择“引用”或“添加引用”,然后选择NPOI.dll进行导入。
2. 接着,引入NPOI的命名空间。在你的代码文件的开头,使用`using NPOI`来引入NPOI的命名空间。
3. 创建一个Workbook对象,表示一个工作簿。可以使用`HSSFWorkbook`或`XSSFWorkbook`类来创建对应格式的工作簿。
4. 获取工作簿中的工作表(Sheet)。可以使用`GetSheetAt`方法来获取指定索引的工作表,也可以使用`GetSheet`方法根据工作表名称来获取。
5. 在工作表中,可以使用`GetRow`方法获取指定索引的行,使用`GetCell`方法获取指定索引的单元格。
6. 对于读取操作,可以使用单元格的`ToString`方法获取单元格的值。对于写入操作,可以使用单元格的`SetCellValue`方法设置单元格的值。
7. 在完成操作后,记得保存工作簿,可以使用`Write`方法将工作簿保存到文件中,也可以使用`WriteTo`方法将工作簿保存到流中。
下面是一个示例代码,演示了如何使用NPOI读取和写入Excel文件:
```csharp
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
// 读取Excel文件
IWorkbook workbook;
using (FileStream file = new FileStream("path/to/excel.xlsx", FileMode.Open, FileAccess.Read))
{
if (Path.GetExtension(file.Name).Equals(".xls"))
workbook = new HSSFWorkbook(file);
else
workbook = new XSSFWorkbook(file);
ISheet sheet = workbook.GetSheetAt(0);
for (int rowIndex = 0; rowIndex <= sheet.LastRowNum; rowIndex++)
{
IRow row = sheet.GetRow(rowIndex);
for (int cellIndex = 0; cellIndex < row.LastCellNum; cellIndex++)
{
ICell cell = row.GetCell(cellIndex);
string cellValue = cell.ToString();
Console.WriteLine("Cell({0}, {1}): {2}", rowIndex, cellIndex, cellValue);
}
}
}
// 写入Excel文件
using (FileStream file = new FileStream("path/to/new_excel.xlsx", FileMode.Create, FileAccess.Write))
{
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
for (int rowIndex = 0; rowIndex < 10; rowIndex++)
{
IRow row = sheet.CreateRow(rowIndex);
for (int cellIndex = 0; cellIndex < 10; cellIndex++)
{
ICell cell = row.CreateCell(cellIndex);
cell.SetCellValue("Data " + rowIndex + "-" + cellIndex);
}
}
workbook.Write(file);
}
```
阅读全文