当前位置: 首页 > 面试题库 >

JasperReports导出到xlsx,而不是xls

童宏富
2023-03-14
问题内容

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

JRXlsExporter

没有Xlsx等效项。而且我找不到参数来设置从xls到xlsx的输出格式。


问题答案:


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功能

  • 批量导出样品



 类似资料:
  • 我有一个谷歌表,第一个选项卡中的单元格从第二个选项卡上的单元格中提取数据。 例如,Sheet1单元格A1具有=Sheet2!A1 这适用于表1上的每个单元格 当我做一个文件时-下载为-MicrosoftExcel(.xlsx) 它用公式导出单元格。有没有一种方法可以将工作表导出为值而不是公式 在这种情况下,Sheet1单元格A1将不包含=Sheet2!A1但是=Sheet2的值!A1?

  • 问题内容: 我对JRXlsExporter有问题。自动调整属性无法正常工作。这是我的jrxml: Java代码: 并输出结果: resultFile。 例如,第一列必须是“客户编号”,而不是“客户” 问题答案: 以下属性在报告级别上不起作用: 您必须将它们放在“报表元素”上(即): 另外,我建议您尝试使用更有用的net.sf.jasperreports.export.xls.column.widt

  • 主要内容:JasperReports 导出为PDF/HTML/XLS格式 我们在上一章《JasperReports 查看打印报表》中已经看到,如何打印和查看一个 JasperReport 生成的文档。在这里,我们将看到如何将这些报表转换或导出为其他格式,例如 PDF、HTML 和 XLS。Facade 类net.sf.jasperreports.engine.JasperExportManager就是用来实现这个功能的。导出意味着将JasperPrint对象(.jrpr

  • 我的问题是,当我单击按钮导出数据表时,它只导出列标题,我的 excel 文件生成时没有行。 我使用的是普里米斯5.3并试图使用apache poi 3.8和3.10-FINAL,但两者都不工作的权利。 在日志中我没有错误。 编辑:我已经知道发生了什么。问题是,当我的表加载时,它是空的,但看起来像将其导出到 excel 的按钮,保持某种缓存,表为空,即使在我将数据加载到表中后,按钮也会继续导出 ex

  • 问题内容: 以下代码获取结果,该结果适用于PDF和XLSX。对于HTML,会引发异常。 HTML的例外情况是 : 对于v6.0和v5.6,该错误相同。这曾经在v5.0中可用(某些类在v5.6中已弃用)。 如何导出各种格式的报告,包括HTML? 问题答案: 对于HTML和其他格式: 使用以下命令调用它:

  • 问题内容: 在我的Java项目中,我有很多JasperReports报告,其中包含复杂的SQL查询,其中包含很多参数。这些报告用于生成pdf文档,其中包含查询返回的数据,并以各种方式进行了分组和格式化。 现在,我还需要直接导出查询结果(例如ResultSet或Map或csv文件或类似文件)。是否可以要求JasperReports仅执行查询并返回结果,而不渲染pdf页面? (注意:这与为报表呈现选择