该
JRXlsxExporter
类应该用于在出口 XLSX 格式。
直到 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) 方法。
在此示例中,我使用了 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页面? (注意:这与为报表呈现选择