1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > C#把excel数据转换成DataTable

C#把excel数据转换成DataTable

时间:2021-06-11 07:56:22

相关推荐

C#把excel数据转换成DataTable

private DataTable TurnExcelToDataTable(string path)

{

try

{

if (Path.GetExtension(path).Contains("xlsx"))//office版本及以上

{

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;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。