Я создаю лист Excel из более чем 100 000 строк.Я использовал SXSSF, так как я обрабатываю огромные данные
SXSSFWorkbook workbook = new SXSSFWorkbook( 10000 );
, сохраняя в кэше 10 000 строк.
Но я получаю
java.lang.IllegalArgumentException: Попытка записать строку [23237] в диапазоне [0,23272], которая уже записана на диск.в org.apache.poi.xssf.streaming.SXSSFSheet.createRow (SXSSFSheet.java:111)
Я попытался увеличить количество строк кэша до 50 000:
SXSSFWorkbook workbook = new SXSSFWorkbook( 50000 );
Но все равно получаю то же исключение.
В дополнение к этому я попробовал другой способ очистки строк вручную, как,
SXSSFWorkbook workbook = new SXSSFWorkbook( -1 ); // which will store unlimeted rows in cache
sheet.flushRows();
, даже это вызывало подобное исключение!
java.lang.IllegalArgumentException: Попытка записи строки [22708] в диапазоне [0,22719], которая уже записана на диск.
Не уверен, что не так с 23237 -ая строка, где происходит это исключение!Несмотря на то, что количество строк в кэше превышает 50000.