Класс JRXlsxExporter должен использоваться для экспорта в формате XLSX .
Пример использования экспортера сJasperReports версии 5.5.2
Till JasperReports 5.5.1 этот код можно использовать для создания отчета в формате xlsx :
JRMapArrayDataSource dataSource = new JRMapArrayDataSource(data);
JasperReport jasperReport = JasperCompileManager.compileReport(reportJRXMLSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource);
JRXlsxExporter exporter = new JRXlsxExporter();
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME, outputFileName);
exporter.exportReport();
Начиная с 5.5.2 версии библиотеки метод JRAbstractExporter.setParameter (JRExporterParameter, Object) устарел.
Пример использования экспортера с современными версиями JasperReports
В этом примере я использовал JRS 6.4.1 версия:
JasperReport jasperReport;
try (InputStream inputStream = JRLoader.getResourceInputStream(jrxmlFilePath)) {
jasperReport = JasperCompileManager.compileReport(JRXmlLoader.load(inputStream));
}
Map<String, Object> params = new HashMap<>();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());
SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration();
configuration.setOnePagePerSheet(true);
configuration.setIgnoreGraphics(false);
File outputFile = new File("output.xlsx");
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
OutputStream fileOutputStream = new FileOutputStream(outputFile)) {
Exporter exporter = new JRXlsxExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(byteArrayOutputStream));
exporter.setConfiguration(configuration);
exporter.exportReport();
byteArrayOutputStream.writeTo(fileOutputStream);
}
Вместо использования JRExporter.setParameter мы должны использовать реализацию XlsReportConfiguration интерфейс.В примере выше я использовал SimpleXlsxReportConfiguration реализацию XlsReportConfiguration для определения настроек, специфичных для JRXlsxExporter exporter.
Дополнительная информация