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

Separate subreports in worksheets with JasperXlsxExporterBuilder

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

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

xlsxExporter.setOnePagePerSheet(false);

属性 net.sf.jasperreports.export.xls.break.before.row 添加到 reportElement 中,当您希望将其分解为新的 sheet

例子

<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>