Apache POI 3.7 OutOfMemoryError: пространство кучи Java при записи большого количества строк в файлы xlsx

Мне нужно записать набор результатов из более чем 65000 строк в файле xlsx. Итак, я пытаюсь использовать Apache POI 3.7. Но я получаю сообщение об ошибке OutOfMemoryError: Java heap space. Как мне решить эту проблему, кроме увеличения памяти JVM, которая, похоже, не решает проблему. Пожалуйста помоги.

Простой пример кода:

public static void main(String[] args) throws IOException {
        Workbook wb = new XSSFWorkbook();
        CreationHelper createHelper = wb.getCreationHelper();
        Sheet sheet = wb.createSheet("new sheet");

        // Create a row and put some cells in it. Rows are 0 based.
        for (int i=0;i<65000;i++){
            Row row = sheet.createRow((int) i);
        // Create a cell and put a value in it.
        Cell cell = row.createCell(0);
        cell.setCellValue(1);

        // Or do it on one line.
        row.createCell(1).setCellValue(1.2);
        row.createCell(2).setCellValue(
                createHelper.createRichTextString("This is a string"));
        row.createCell(3).setCellValue(true);
        }


        // Write the output to a file
        FileOutputStream fileOut = new FileOutputStream("test1.xls");
        fileOut.flush();
        wb.write(fileOut);
        fileOut.close();
    }
6
задан bernie 19 March 2012 в 18:34
поделиться