gpt4 book ai didi

c# - 'OutOfMemoryException' 读取 20mb XLSX 文件

转载 作者:行者123 更新时间:2023-11-30 21:53:45 24 4
gpt4 key购买 nike

我正在使用 NPOI处理Excel文件。这是我读取文件的方式:

using (FileStream stream = File.OpenRead(excelFilePath))
{
IWorkbook wb = WorkbookFactory.Create(stream);
...
}

但是,对于任何大于几兆字节的 XLSX 文件,它会导致内存使用量激增至大约 1GB,并最终引发 OOM 异常。

做一些研究,我有 found out奇怪的是,从文件而不是流加载工作簿会导致 POI 消耗更少的内存。与我想出的使用文件的提供的 Java 示例最接近的 C# 等效如下:

OPCPackage pkg = OPCPackage.Open(new FileInfo(excelFilePath));
XSSFWorkbook wb = new XSSFWorkbook(pkg);

但它似乎使用相同的底层实现,因为内存使用仍然相同并导致 OutOfMemory 异常。

NPOI 是否有任何用于处理大型 XLSX 文件的内置功能?

也欢迎就可以处理 XLS 和 XLSX 文件的替代库提出建议。

最佳答案

似乎 XLSX 支持在 NPOI 中是相当新的,它还不能处理大文件。

尝试了几个库后,EPPlus能够顺利处理大型 XLSX 文件,所以我最终决定使用两个用于读取 Excel 文件的库,用于 XLS 的 NPOI 和用于 XLSX 的 EPPlus。

关于c# - 'OutOfMemoryException' 读取 20mb XLSX 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33670705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com