2016-08-15 3 views
2

Я пытаюсь экспортировать файл XLS с +80.000, и я получаю «net.sf.jasperreports.engine.JRException: ячейку нельзя добавить».Экспорт XLS с +80.000 записей

Я попытался вывести «MAXIMUM_ROWS_PER_SHEET», но он не сработал.

Это мой код:

ByteArrayOutputStream out = new ByteArrayOutputStream(); 
try { 
    JasperReport relatorioJasper = (JasperReport) JRLoader.loadObjectFromFile(parametros.get("REPORT_JASPER")+""); 

    JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(listaReport); 
    JasperPrint jasperPrint = JasperFillManager.fillReport(relatorioJasper, parametros, dataSource); 

    JRXlsExporter exporter = new JRXlsExporter(); 
    exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); 
    exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(out)); 
    SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration(); 
    configuration.setOnePagePerSheet(false); 
    configuration.setDetectCellType(true); 
    configuration.setCollapseRowSpan(false); 
    configuration.setRemoveEmptySpaceBetweenColumns(true); 
    // exporter.setParameter(JRXlsExporterParameter.MAXIMUM_ROWS_PER_SHEET, 10000); 

    exporter.setConfiguration(configuration); 
    exporter.exportReport(); 


    InputStream relatorios = new ByteArrayInputStream(out.toByteArray()); 
    return stream2file(relatorios, parametros.get("REPORT_NAME")+"" ,Constantes.XLS); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 
return null; 

Может кто-нибудь мне помочь?

+2

Можете ли вы опубликовать полную статистику стека [изменить] сообщение –

+0

@ user3633580 Вы можете попробовать отладить код с помощью прилагаемого * исходного кода библиотеки JasperReports *. Вы можете установить точки останова в тех местах, где подняты новые JRException (EXCEPTION_MESSAGE_KEY_CANNOT_ADD_CELL), например, в классе * JExcelApiExporter *. В этом случае вы можете поймать причину исключения для сторонних библиотек (POI или JExcelApi) –

+0

Спасибо за советы, но он работал только с изменением XLS на XLSX. – user3633580

ответ

1

Я думаю, что проблема не в экспорте. MAXIMUM_ROWS_PER_SHEET тоже не поможет.
XLS не может содержать более 65536 строк. Попробуйте использовать XLSX.
См. this answer from Superuser.

+0

Это ограничения для разных версий https://poi.apache.org/apidocs/org/apache/poi/ss/SpreadsheetVersion.html –

+0

Спасибо, это сработало. – user3633580

+0

Вы Добро пожаловать!) – sanluck

Смежные вопросы