SXSSF вызывает попытку записи строки [23237] в диапазоне [0,23272], которая уже записана на диск

Я создаю таблицу Excel из более чем 1 строки Lakh, я использовал SXSSF, так как я обрабатываю огромные данные

 SXSSFWorkbook workbook = new SXSSFWorkbook( 10000 );

сохраняя 10000 строк в кеше.

Но я получаю

java.lang.IllegalArgumentException: Attempting to write a row[23237] in the range [0,23272] that is already written to disk. 
    at org.apache.poi.xssf.streaming.SXSSFSheet.createRow(SXSSFSheet.java:111)

Я попытался увеличить строки кэша до 50000, как

SXSSFWorkbook workbook = new SXSSFWorkbook( 50000 );

Но все равно получаю такое же исключение.

В дополнение к этому я попробовал другой способ очистки строк вручную, как,

SXSSFWorkbook workbook = new SXSSFWorkbook( -1 ); // which will store unlimeted rows in cache
sheet.flushRows();

даже это вызывало подобное исключение!!!

java.lang.IllegalArgumentException: Attempting to write a row[22708] in the range [0,22719] that is already written to disk.

Не уверен, что не так с 23237- й строкой, где происходит это исключение! Несмотря на то, что количество строк в кэше превышает 50000.

Пожалуйста, помогите мне...

0 ответов

Другие вопросы по тегам