1

我想在工作表中分隔子报表,但如果我 setOnePagePerSheet(true) 第二个子报表,这在多个工作表中也是很长的休息时间。我希望每个子报告只有一个工作表。

这些是我对导出器的设置:

        reportBuilder.title(cmp.subreport(criteriaReportBuilder), cmp.pageBreak(), cmp.subreport(secondReportBuilder));
JasperXlsxExporterBuilder xlsxExporter = DynamicReports.export.xlsxExporter(outputStream);
        xlsxExporter.setCollapseRowSpan(false);
        xlsxExporter.setRemoveEmptySpaceBetweenColumns(true);
        xlsxExporter.setRemoveEmptySpaceBetweenRows(false);
        xlsxExporter.setDetectCellType(true);
        xlsxExporter.setWhitePageBackground(false);
        xlsxExporter.setIgnoreGraphics(false);
        xlsxExporter.setOnePagePerSheet(true);
        xlsxExporter.setMaxRowsPerSheet(Integer.MAX_VALUE);

        reportBuilder.toXlsx(xlsxExporter);
4

1 回答 1

1

将excel设置为在您喜欢时中断,而不是在每个报告页面上

xlsxExporter.setOnePagePerSheet(false);

当您希望它进入新工作表时,将属性 net.sf.jasperreports.export.xls.break.before.row添加到reportElement

例子

<reportElement x="7" y="15" width="146" height="35" uuid="8ee71878-fc35-4991-a7dc-5199f23f2978">
   <property name="net.sf.jasperreports.export.xls.break.before.row" value="true"/>
</reportElement>
于 2015-12-03T15:08:01.903 回答