jasperreports如何将多个jrmxl文件导出到单个工作表

时间:2013-02-14 19:40:44

标签: java jasper-reports

我有一个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个不同的选项卡上生成的,我想要的是让它们一个接一个地构建。如何以这种方式合并它们?

1 个答案:

答案 0 :(得分:0)

您可以将3个报告作为子报告包装在主报告中,然后运行该报告。为此,您需要将要访问的数据源的逻辑添加到子报表的数据源表达式中。

或者你可以在JasperReports之外发布excel表格。