[英]Blazor Server - websocket connection to failed 1006 - PDF Viewer (with file size 13mb to 20mb)
[英]'OutOfMemoryException' reading 20mb XLSX file
我正在使用NPOI處理Excel文件。 這是我讀取文件的方式:
using (FileStream stream = File.OpenRead(excelFilePath))
{
IWorkbook wb = WorkbookFactory.Create(stream);
...
}
但是,對於任何大於幾兆字節的XLSX文件,它都會導致內存使用量飆升至大約1GB,並最終引發OOM異常。
經過一些研究,我發現奇怪的是,從文件而不是從流加載工作簿可以減少POI的內存消耗。 以下是與我使用文件提供的Java示例最接近的C#:
OPCPackage pkg = OPCPackage.Open(new FileInfo(excelFilePath));
XSSFWorkbook wb = new XSSFWorkbook(pkg);
但是它似乎使用了相同的基礎實現,因為內存使用率仍然相同並且會導致OutOfMemory異常。
NPOI是否有內置處理大XLSX文件的內容?
也歡迎提出關於可同時處理XLS和XLSX文件的替代庫的建議。
作為替代庫的建議, Apache POI是一個很好的庫。 我已經將它廣泛用於XLSX和XLS文件,並且效果很好。 這是對文件進行快速測試的要點 。
Apache POI唯一無法涵蓋的格式是可以使用Xelem代替的舊格式XML文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.