问题描述
private DataTable ReadExcel(string sheetName,Stream stream)
{
using (SpreadsheetDocument document = SpreadsheetDocument.Open(stream,false))
{//打开Stream
IEnumerable<Sheet> sheets = document.WorkbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == sheetName);
if (sheets.Count() == 0)
{//找出合适前提的sheet,没有则返回
return null;
}
WorksheetPart worksheetPart = (WorksheetPart)document.WorkbookPart.GetPartById(sheets.First().Id);
//获取Excel中共享数据
SharedStringTable stringTable = document.WorkbookPart.SharedStringTablePart.SharedStringTable;
IEnumerable<Row> rows = worksheetPart.Worksheet.Descendants<Row>();//获得Excel中得数据行
DataTable dt = new DataTable("Excel");
//因为须要将数据导入到DataTable中,所以我们假定Excel的第一行是列名,从第二行开端是行数据
foreach (Row row in rows)
{
if (row.RowIndex == 1)
{//Excel第一行动列名
GetDataColumn(row,stringTable,ref dt);
}
else
GetDaTarow(row,ref dt);//Excel第二行同时为DataTable的第一行数据
}
return dt;
}
}
我需要将Excel中的数据转换为日期表。 Excel中大约有100万〜200万条数据。代码运行不正确,system.outofmemoryexception异常,该怎么办,或者我需要将数据写入磁盘是一个更好的解决方案
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)