我有一个应用程序,必须读取Excel并将其转换为数组。到目前为止还不错。一切工作文件,直到我尝试转换一个更大的文件.我尝试了OpenXML和SAX方法:
using (SpreadsheetDocument xlsx = SpreadsheetDocument.Open(filePath, false))
{
WorkbookPart workbookPart = xlsx.WorkbookPart;
List<List<string>> parsedContent = new List<List<string>>();
foreach (WorksheetPart worksheet in workbookPart.WorksheetParts)
{
OpenXmlReader xlsxReader = OpenXmlReader.Create(worksheet);
while (xlsxReader.Read())
{
}
}
}
这对于1 - 10 MB范围内的文件非常有效。我的问题是当我试图加载10+ MB的文件。结果是OutOfMemoryException。如何正确读取这一大块数据?如何提高内存效率?
P.s.我尝试了像ClosedXML,EPPlus和其他一些库。
任何解决方案都将受到赞赏。提前感谢您
2条答案
按热度按时间rbl8hiat1#
如果您计划只对excel文件内容执行读取,我建议您使用ExcelDataReader库,而不是Link。
4sup72z82#
使用ExcelDataReader。它很容易通过Nuget安装,只需要几行代码:
金块:
使用方法: