c# NPOI 获取execl中的数据,并存到dataset中
时间: 2024-03-28 10:42:04 浏览: 179
使用NPOI读取Excel并将数据存储到DataSet中的示例代码如下:
```csharp
using System.Data;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
public static DataSet GetExcelData(string excelName, string sheetName)
{
DataSet ds = new DataSet();
try
{
// 读取Excel文件
using (var fs = new FileStream(excelName, FileMode.Open, FileAccess.Read))
{
// 根据文件流创建Workbook对象
IWorkbook workbook = new HSSFWorkbook(fs);
// 获取指定名称的Sheet表
ISheet sheet = workbook.GetSheet(sheetName);
// 获取Sheet表的行数
int rowCount = sheet.LastRowNum;
// 获取Sheet表的列数
int columnCount = sheet.GetRow(0).LastCellNum;
// 创建DataTable对象
DataTable dt = new DataTable(sheetName);
// 添加列
for (int i = 0; i < columnCount; i++)
{
ICell cell = sheet.GetRow(0).GetCell(i);
dt.Columns.Add(cell.ToString());
}
// 添加行数据
for (int i = 1; i <= rowCount; i++)
{
DataRow dr = dt.NewRow();
for (int j = 0; j < columnCount; j++)
{
ICell cell = sheet.GetRow(i).GetCell(j);
if (cell != null)
{
dr[j] = cell.ToString();
}
}
dt.Rows.Add(dr);
}
// 将DataTable添加到DataSet中
ds.Tables.Add(dt);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ds;
}
```
使用该方法获取Excel数据:
```csharp
DataSet ds = GetExcelData("D:\\test.xlsx", "Sheet1");
```
其中,第一个参数是Excel文件的路径,第二个参数是要读取的Sheet表的名称。该方法返回一个DataSet对象,其中包含了指定Sheet表的数据。
阅读全文