我有两个子报表,它们位于单独的工作表中。问题是,第二个工作表中的列分割与第一个工作表中的列相同,因此存在一些合并的单元格。对于合并的单元格,您无法对列进行排序("此操作要求合并的单元格具有相同的大小和#34;)。
我如何强制执行列的新样式/细分?
这些是导出器的设置:
reportBuilder.title(cmp.subreport(criteriaReportBuilder), 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(false);
reportBuilder.toXlsx(xlsxExporter);
第二次报告的输出(cmp.subreport(secondReportBuilder)) 我希望,只有两列(A-B)而不是A-G。
答案 0 :(得分:1)
将评论转换为答案:
从DynamicJasper
生成多个 JRXlsExporter
,然后使用标准JRXlsExporter exporter = new JRXlsExporter();
List<JasperPrint> sheets = new ArrayList<JasperPrint>();
sheets.add(criteriaReportBuilder.toJasperPrint());
sheets.add(reportBuilder.toJasperPrint());
exporter.setExporterInput(SimpleExporterInput.getInstance(sheets));
...
<?php
if( isset( $_GET["caller"] ) && $_GET["caller"] == "somevalue" ) {
// I'm using Location because this will remove the get value
header( "Location: index.php" );
exit;
}
?>
<a href="index.php">just go to index</a><br/>
<a href="index.php?caller=somevalue">got to index and refresh?</a>