java jasper 生成xlsx_JasperReports导出到xlsx,而不是xls

小编典典

该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 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 出口。

更多信息

2020-10-20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值