在现有系统中已经使用 jasper 5.0,据我所知,它使用 poi HSSF来生成 xls 数据,但是现在随着应用程序的增长,报告出现了要生成大计数事务的问题。
我已经搜索了解决方案,并找到了带有XSSF的 POI 。因为 jasper 也使用 POI HSSF,所以我考虑在 JASPER 内部使用 XSSF。
那可能吗?我怎么能做到这一点?我需要使用 jasper,因为现在无法更改现有应用程序。
在现有系统中已经使用 jasper 5.0,据我所知,它使用 poi HSSF来生成 xls 数据,但是现在随着应用程序的增长,报告出现了要生成大计数事务的问题。
我已经搜索了解决方案,并找到了带有XSSF的 POI 。因为 jasper 也使用 POI HSSF,所以我考虑在 JASPER 内部使用 XSSF。
那可能吗?我怎么能做到这一点?我需要使用 jasper,因为现在无法更改现有应用程序。
导出 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),它们存在于 jasper 报告的分发中。
从 4.5 版开始可用,这JRXlsxExporter
是jasper 报告 5.5.0 API。在设置而不是属性的版本 4 参数中,请参阅jasperreports-export-to-xlsx-not-xls