java.lang.OutOfMemoryError:使用 Apache POI 阅读 Excel 时的 Java 堆空间
2022-09-01 22:38:19
我的文件是9MB,我在加载工作簿时收到此错误。
XSSFWorkbook workbook = new XSSFWorkbook(excelFilePath);
此行导致java.lang.OutOfMemoryError: Java heap space
我该如何解决这个问题?
我的文件是9MB,我在加载工作簿时收到此错误。
XSSFWorkbook workbook = new XSSFWorkbook(excelFilePath);
此行导致java.lang.OutOfMemoryError: Java heap space
我该如何解决这个问题?
首先要检查的是 - 您是使用输入流还是文件打开XSSFWorkbook?用文件打开它要低得多。
接下来,您想读还是写?如果内存对您来说非常紧张,则可以使用类似萨克斯的方式使用XSSF的替代选项。
有关阅读,请参阅 http://poi.apache.org/spreadsheet/how-to.html#xssf_sax_api,了解有关使用 XSSF + Sax 的详细信息。作为另一种选择,如果您只想获取文件的文本内容,那么看起来Apache Tika有一个基于事件的文本提取器,用于使用POI.xlsx文件。
对于写作,最近在POI开发列表中有很多关于改进“大网格演示”的讨论。你可能想遵循这些 - http://poi.apache.org/mailinglists.html