C# NPOI 读取单元格内容
时间: 2023-07-12 17:03:41 浏览: 246
使用 NPOI 库读取单元格内容的基本步骤如下:
1. 引入 NPOI 库
在 Visual Studio 中,右键单击项目,选择“管理 NuGet 程序包”,搜索并安装 NPOI 库。
2. 创建 Excel 文件对象
可以通过以下代码创建一个 Excel 文件对象:
```
using NPOI.HSSF.UserModel; // for .xls format
using NPOI.XSSF.UserModel; // for .xlsx format
// create a new workbook
IWorkbook workbook = null;
if (Path.GetExtension(filePath) == ".xls")
{
workbook = new HSSFWorkbook(File.OpenRead(filePath));
}
else if (Path.GetExtension(filePath) == ".xlsx")
{
workbook = new XSSFWorkbook(File.OpenRead(filePath));
}
```
其中,`filePath` 是 Excel 文件的路径。
3. 获取工作表对象
可以通过以下代码获取指定名称的工作表对象:
```
ISheet sheet = workbook.GetSheet("Sheet1"); // "Sheet1" 是工作表的名称
```
4. 获取单元格对象
可以通过以下代码获取指定行列位置的单元格对象:
```
IRow row = sheet.GetRow(rowIndex); // rowIndex 是行索引
ICell cell = row.GetCell(cellIndex); // cellIndex 是列索引
```
5. 读取单元格内容
可以通过以下代码读取单元格的字符串内容:
```
string cellValue = cell.StringCellValue;
```
完整代码示例:
```
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
// file path
string filePath = @"C:\temp\test.xlsx";
// create a new workbook
IWorkbook workbook = null;
if (Path.GetExtension(filePath) == ".xls")
{
workbook = new HSSFWorkbook(File.OpenRead(filePath));
}
else if (Path.GetExtension(filePath) == ".xlsx")
{
workbook = new XSSFWorkbook(File.OpenRead(filePath));
}
// get the sheet
ISheet sheet = workbook.GetSheet("Sheet1");
// get the cell
IRow row = sheet.GetRow(0);
ICell cell = row.GetCell(0);
// get the cell value
string cellValue = cell.StringCellValue;
// output the cell value
Console.WriteLine(cellValue);
```
注意事项:
1. Excel 文件必须已经存在,否则会抛出异常;
2. NPOI 库支持读取 .xls 格式和 .xlsx 格式的 Excel 文件;
3. 单元格内容的数据类型可能不同,需要根据实际情况进行类型转换。
阅读全文