Как настроить Jasper на использование XSSF?

В существующей системе уже используется jasper 5.0, и, насколько я знаю, он использует poi HSSF для генерации данных xls, но теперь, когда приложение растет, в отчете возникает проблема с генерацией транзакции большого количества.

Я искал решение и нашел POI с помощью XSSF. Поскольку jasper также использует POI HSSF, я думаю об использовании XSSF внутри JASPER.

Это возможно? и как я мог это сделать? Мне нужно использовать яшму, потому что пока невозможно изменить существующее приложение.


person Angripa    schedule 08.12.2015    source источник


Ответы (1)


Чтобы экспортировать jrxml, создавая ooxml XSSF, файл Excel xlxs

Используйте net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter

Пример:

JasperPrint jasperPrint = JasperFillManager.fillReport(report, paramMap, connection); //Example of how to get the jasper print

JRXlsxExporter exporter = new JRXlsxExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
File outputFile = new File("excelTest.xlsx");
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputFile));
SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration(); 
configuration.setOnePagePerSheet(false); //Set configuration as you like it!!
configuration.setDetectCellType(true);
configuration.setCollapseRowSpan(false);
exporter.setConfiguration(configuration);
exporter.exportReport();

Естественно вам нужны связанные библиотеки (poi-ooxml.jar, poi-ooxml-schemas.jar, xmlbeans.jar) в вашем classpath, они присутствуют в дистрибутиве jasper report.

JRXlsxExporter доступен, начиная с версии 4.5, это Jasper Report 5.5.0 API. В параметрах версии 4, где заданы вместо свойств, см. jasperreports-export-to-xlsx-not -xls

person Petter Friberg    schedule 08.12.2015