2015-12-03 62 views
1

我想分開工作表中的子報表,但如果我setOnePagePerSheet(true)第二個子報表,這是非常長的休息時間也在多個工作表中。我希望每個子報表只有一個工作表。JasperXlsxExporterBuilder工作表中單獨的子報告

這些都是我的出口設置:

 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

設置擅長破譯當你喜歡它並不是每個報表頁上

xlsxExporter.setOnePagePerSheet(false); 

添加財產net.sf.jasperreports.export.xls.break.before.rowreportElement時你喜歡它打破新板

例子

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

我沒有用於主報告的xml模板。我試着在子報表(更新示例)之間使用「cmp.pageBreak()」,但pageBreak將被忽略 – knobli

+0

@knobli我修改了我的答案,在碧玉報告文檔中發現了一個不錯的屬性,我測試了它並且它可以正常工作。在動態碧玉中,你應該可以添加這個屬性。 –

+0

你也有代碼示例嗎?我發現屬性JasperProperty.EXPORT_XLS_BREAK_AFTER_ROW,但我不知道,我應該在哪裏設置它 – knobli