Apache POI 3.16 - 使用XSSF读取75K行的OutOfMemory异常EXCEL(.xlsx)
问题描述:
根据需要,我的应用程序首先需要读取一个大约75K-100K行,90列的Excel文件。但是,在第2行中出现以下异常,而XSSFWorkbook加载了pkg /文件Apache POI 3.16 - 使用XSSF读取75K行的OutOfMemory异常EXCEL(.xlsx)
线程“main”中的异常java.lang.OutOfMemoryError:Java堆空间 at com.sun.org.apache.xerces.internal。 dom.DeferredDocumentImpl.createChunk(Unknown Source)
我使用下面的代码来读取excel文件和当前分配给堆的1 GB内存,我甚至无法读取15K行文件。
1 OPCPackage pkg = OPCPackage.open(“C:/Users/Admin/eclipse-workspace/HelloWorld/src/data.xlsx”); 2 XSSFWorkbook wb = new XSSFWorkbook(pkg);
或
//阅读需要更新 1的FileInputStream INPUTFILE =新的FileInputStream电子表格( “C:/Users/Admin/eclipse-workspace/HelloWorld/src/data.xlsx”);
2 XSSFWorkbook wb = new XSSFWorkbook(inputFile);
请让我知道是否有任何解决方案,或者是否有任何其他库或框架可供Java读取大型Excel文件。
SXSSF是写作,不是读书。 – kiwiwings