Я попытался выполнить ссылку здесь , но не смог. Лист в отчете яшмы не работает. Я создал 2 листа («Отчет об анализе», «Сводный отчет»). Однако во время отладки SimpleExporterInput.getInstance (листы) не работает.
Мой код:
insList.add(prepareReport(ReportConstant.TEMPLATE_SUMMARY_REPORT));
insList.add(prepareReport(ReportConstant.TEMPLATE_ANALYSIS_REPORT));
//fill data
final Map<String, Object> params = (Map<String, Object>) parameters;
final JRDataSource ds = new JRBeanCollectionDataSource(data);
//load JasperReport
List<JasperReport> reports = new ArrayList<>();
for (InputStream ins : insList) {
reports.add((JasperReport) JRLoader.loadObject(ins));
}
//create sheet
List<JasperPrint> sheets = new ArrayList<>();
reports.forEach(report -> {
JasperPrint print = null;
try {
print = JasperFillManager.fillReport(report, params, ds);
} catch (JRException ex) {
logger.error("JasperFillManager.fillReport", ex);
}
if (print != null) {
sheets.add(print);
} else {
logger.error("JasperPrint NULL");
}
});
//some thing's was wrong
JRXlsxExporter exporter = new JRXlsxExporter();
exporter.setExporterInput(SimpleExporterInput.getInstance(sheets));
//http response
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream()));
//my config
SimpleXlsxReportConfiguration config = new SimpleXlsxReportConfiguration();
config.setDetectCellType(false);
config.setSheetNames(new String[]{"Accounting Analysis", "Summary Report"});
config.setOnePagePerSheet(false);
config.setCollapseRowSpan(false);
config.setIgnoreGraphics(true);
config.setWhitePageBackground(false);
config.setIgnoreCellBackground(true);
exporter.setConfiguration(config);
exporter.exportReport();