JasperReports导出到xlsx,而不是xls

Ago*_*noX 10 java xls jasper-reports xlsx

我找不到如何在JasperReports 4.1.1中导出.xlsx中的文件.班级:

JRXlsExporter
Run Code Online (Sandbox Code Playgroud)

没有Xlsx等价物.我找不到一个参数来设置从xls到xlsx的输出格式.

Ale*_*x K 19

JRXlsxExporter类应该用于出口__CODE__格式.

使用样本:

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();
Run Code Online (Sandbox Code Playgroud)

  • @DanBrandt 是的,这个例子是 7 年前发布的 :) 我添加了实际例子,谢谢 (2认同)

Pet*_*erg 14

这个答案是为了帮助用户使用JASPER REPORT VERSION> 5.6(最新版本),因此删除了已弃用的代码.

在后来的版本> 5.6 JRXlsxExporter.setParameter(..)中已经deprecated.

你应该用

JRMapArrayDataSource dataSource = new JRMapArrayDataSource(data);

JasperReport jasperReport = JasperCompileManager.compileReport(reportJRXMLSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource);

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.setDetectCellType(true);//Set configuration as you like it!!
configuration.setCollapseRowSpan(false);
exporter.setConfiguration(configuration);
exporter.exportReport();
Run Code Online (Sandbox Code Playgroud)