读取超过90k条记录的Excel文件时出现内存不足异常

时间:2019-07-13 09:17:51

标签: java excel rowcount

我想从excel中找到总行数。摆脱内存异常

         try {
                InputStream myxls = new FileInputStream("File path");

                workbook = new XSSFWorkbook(myxls);
                System.out.println(ele.productHierarchyText());
                XSSFSheet sheet = workbook.getSheet("Sheet Name");
                XSSFRow row = sheet.getRow(0);

                int colNum = row.getLastCellNum();
                System.out.println("Total Number of Columns in the excel is : " + colNum);

                rowNum = sheet.getLastRowNum() + 1;
                System.out.println("Total Number of Rows in the excel is : " + rowNum);
         }

1 个答案:

答案 0 :(得分:0)

似乎您没有为JVM分配足够的内存。由于它同时读取90k条记录并尝试将它们保留在堆内存中,因此它应该具有足够的堆内存来容纳这些记录。

可以使用-Xmx标志来增加堆内存。您需要确保为应用程序分配了足够的内存用于堆和非堆,以避免内存不足错误。

有关更多详细信息,您可以选中https://outofmemoryerror.io/