Java Jasper报告大数据的性能问题
我正在使用Jasper Report 6.11版本生成Excel报告,因为我的列是动态的,所以我们在Jasper文件中使用了交叉表 我有大约132列和100000行,因为数据很大,无法下载报告。 在搜索解决方案时,我找到了JRSwapFileVirtualizer解决方案。我试过了,但还是一样的问题。我检查了一些小数据的交换文件位置,然后将数据写入交换文件,但对于大数据,它将不起作用 代码库:Java Jasper报告大数据的性能问题,java,jasper-reports,Java,Jasper Reports,我正在使用Jasper Report 6.11版本生成Excel报告,因为我的列是动态的,所以我们在Jasper文件中使用了交叉表 我有大约132列和100000行,因为数据很大,无法下载报告。 在搜索解决方案时,我找到了JRSwapFileVirtualizer解决方案。我试过了,但还是一样的问题。我检查了一些小数据的交换文件位置,然后将数据写入交换文件,但对于大数据,它将不起作用 代码库: JRBeanCollectionDataSource dataSource = new JRB
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(listForCommonReport,
false);
JRSwapFile swapFile = null;
JRAbstractLRUVirtualizer virtualizer = null;
JasperPrint jasperPrint = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
JRXlsxExporter exporter = new JRXlsxExporter();
try {
reportParams.put(DB_CONNECTION_BODY, getConnection());
swapFile = new JRSwapFile(c:\\swapfilefolder, 4096, 200);
virtualizer = new JRSwapFileVirtualizer(2, swapFile, true);
reportParams.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
jasperPrint = JasperFillManager.fillReport(templateFileFileName, reportParams, dataSource);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, bos);
exporter.setParameter(JRXlsAbstractExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
exporter.setParameter(JRXlsAbstractExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
exporter.setParameter(JRXlsAbstractExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
exporter.setParameter(JRXlsAbstractExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporter.exportReport();
return bos.toByteArray();
请给我推荐一些适合我的解决方案