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

标签 jasper-reports

我正在使用 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/

相关文章:

java - Jasper Report 中的动态图像大小

java - 将 jasper 报告下载到服务器中的特定位置

java - JasperReports 导出到 Excel 仅使用最后设置的背景颜色

jasper-reports - JasperReports 中的交叉表排序

java - 我的Jasper模板未显示任何文字

java - jasperreports 大型 Excel 文件

java.lang.NoClassDefFoundError : net. sf.jasperreports.engine.util.JRStyledTextParser(初始化失败)

java - 如何使用 Jasper Report 生成 doc 文件

jasper-reports - jasperReport 中的二维码集成

java - 如何在 Jasper Report 中动态显示列?