private DataTable TurnExcelToDataTable(string path)
{
try
{
if (Path.GetExtension(path).Contains("xlsx")) //office版本2007及以上
{
XSSFWorkbook hssfworkbook = null;
using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new XSSFWorkbook(file);
}
//第一个sheet页
ISheet sheet = hssfworkbook.GetSheetAt(0);
string sheetName = hssfworkbook.GetSheetName(0);
DataTable dt = new DataTable();
IRow headerRow = sheet.GetRow(0);
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
dt.Columns.Add(column);
}
int rowCount = sheet.LastRowNum;
for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = dt.NewRow();
if (row != null)
{
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
else dataRow[j] = "";
}
dt.Rows.Add(dataRow);
}
}
sheet = null;
hssfworkbook = null;
return dt;
}
else
{
HSSFWorkbook hssfworkbook = null;
using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new HSSFWorkbook(file);
}
//第一个sheet
ISheet sheet = hssfworkbook.GetSheetAt(0);
string sheetName = hssfworkbook.GetSheetName(0);
DataTable dt = new DataTable();
IRow headerRow = sheet.GetRow(0);
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
dt.Columns.Add(column);
}
int rowCount = sheet.LastRowNum;
for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = dt.NewRow();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
else dataRow[j] = "";
}
dt.Rows.Add(dataRow);
}
sheet = null;
hssfworkbook = null;
return dt;
}
}
catch(exception ex)
{
MessageBox.show(ex.message);
return null;
}
}