gpt4 book ai didi

jasper-reports - 如何从jasper报告导出到excel中的多个工作表

转载 作者:行者123 更新时间:2023-12-04 23:41:56 32 4
gpt4 key购买 nike

我正在使用 iReport 处理一份包含许多子报告的报告。

从我的应用程序生成报告时,我想在 excel 文件中有另外两个工作表。

在互联网上搜索时,我找到了有关在报告中创建中断的答案,在子报告“true”中有选项“忽略分页”,但我仍然不清楚。

我有哪些选项可以控制创建新工作表的方式和时间

最佳答案

在 jasper 报告中,在 jrxml 中有不同的方法来实现新的工作表。并在 java代码。默认行为是为每个页面创建一个新工作表。我将说明在使用它们时存在相对问题的 3 种最常见的方法。

Ignore pagination and break element


方法
套装 isIgnorePagination="true"jasperReport标记并添加
<break>
<reportElement x="0" y="0" width="100" height="1" uuid="c5371aa4-2eb4-4ab9-8cae-39f50da3317b"/>
</break>
当您需要一张新纸时。
问题 : 如果您也导出为 pdf,报告将不会很漂亮(因为它忽略了分页)

Use the jrxml properties


方法
为避免在每个新页面上创建新工作表,请设置属性
net.sf.jasperreports.export.xls.one.page.per.sheet="false"
当您希望它在 reportElement 之前或之后创建新工作表时添加相关属性:
net.sf.jasperreports.export.xls.break.before.row="true"
net.sf.jasperreports.export.xls.break.after.row="true"
问题 :每张纸上的列都相同,这可能会导致不同纸上的 colspan 丑陋

Use java and controll the sheet's as you like (loading different reports)


方法
List<JasperPrint> sheets = new ArrayList<JasperPrint>();
for (int i=1;i<=8;i++){
JasperPrint print = JasperFillManager.fillReport("subReport_" + i + ".jasper", paramMap, connection);
sheets.add(print);
}
JRXlsxExporter exporter = new JRXlsxExporter();
exporter.setExporterInput(SimpleExporterInput.getInstance(sheets));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(new File("text.xlxs"));
SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration();
configuration.setSheetNames(sheetNames): //sheets names is an array of the different names.
configuration.setOnePagePerSheet(false); //remove that it break on new page
configuration.setDetectCellType(true);
exporter.setConfiguration(configuration);
exporter.exportReport();
问题 : 如果您使用的是 jasper 报表服务器,则不能使用此方法。

关于jasper-reports - 如何从jasper报告导出到excel中的多个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34808741/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com