NPOI在DataGridView中展示excel中的数据

时间:2022-02-17 13:42:35
        HSSFWorkbook hssfworkbook;
DataSet ds = new DataSet();
/// <summary>
/// 初始化一个工作薄
/// </summary>
/// <param name="path">工作薄的路径</param>
void InitializeWorkbook(string path)
{
using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new HSSFWorkbook(file);
}
}
void ConvertToDataTable()
{
ISheet sheet = hssfworkbook.GetSheetAt(0);
System.Collections.IEnumerator rows = sheet.GetRowEnumerator();

DataTable dt = new DataTable();
for (int i = 0; i < sheet.GetRow(0).LastCellNum; i++)
{
dt.Columns.Add(Convert.ToChar(((int)'A') + i).ToString());
}
while (rows.MoveNext())
{
IRow row = (HSSFRow)rows.Current;
DataRow dr = dt.NewRow();
for (int j = 0; j < row.LastCellNum; j++)
{
ICell cell = row.GetCell(j);
if (cell == null)
{
dr[j] = null;
}
else
{
dr[j] = cell;
}
}
dt.Rows.Add(dr);
}
ds.Tables.Add(dt);
}
private void btnReader_Click(object sender, EventArgs e)
{
InitializeWorkbook("test.xls");
ConvertToDataTable();
dgViewTest.DataSource = ds.Tables[0];
}

附:
使用NPOI将DataGridView的数据导出EXCEL