使用JasperXlsxExporterBuilder在工作表中分隔子报表

时间:2015-12-03 14:57:13

标签: excel jasper-reports dynamic-reports

我想在工作表中分隔子报表,但如果我将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);

1 个答案:

答案 0 :(得分: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>