该
JRXlsxExporter
类应该用于在出口 XLSX 格式。
在JasperReports 5.5.2之前的版本中使用导出器的示例
直到 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 出口。
更多信息
高级Excel功能
批量导出样品



