我有一个jrxml文件,我想填充3个不同的数据源。然后我想导出到一个XLS或XLXS文件,其中3个报告在一张纸上连接在一起。
String input = "C:\\location\\report1.jrxml";
JasperReport jreport = JasperCompileManager.compileReport(input);
JasperPrint jprint1 = JasperFillManager.fillReport(jreport, new HashMap<String, Object>(), new JRBeanCollectionDataSource(getReportData(1)));
JasperPrint jprint2 = JasperFillManager.fillReport(jreport, new HashMap<String, Object>(), new JRBeanCollectionDataSource(getReportData(2)));
JasperPrint jprint3 = JasperFillManager.fillReport(jreport, new HashMap<String, Object>(), new JRBeanCollectionDataSource(getReportData(3)));
List<JasperPrint> jprintlist = new ArrayList<JasperPrint>();
jprintlist.add(jprint1);
jprintlist.add(jprint2);
jprintlist.add(jprint3);
JRXlsxExporter exporter = new JRXlsxExporter();
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT_LIST, jprintlist);
String xlsFile = "C:\\location\\test.xlsx";
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, xlsFile);
exporter.exportReport();
报告都是按照我的预期生成的,但是在excel中它们是在3个不同的选项卡上生成的,我想要的是让它们一个接一个地构建。如何以这种方式合并它们?
答案 0 :(得分:0)
您可以将3个报告作为子报告包装在主报告中,然后运行该报告。为此,您需要将要访问的数据源的逻辑添加到子报表的数据源表达式中。
或者你可以在JasperReports之外发布excel表格。