我在 java 项目中使用 BIRT 运行时 4.8.0 来生成 Excel 报告。excel 报告有 1k 列,可以有 10k 到 50k 行(1 个查询的结果,映射到 1 个表)。我正在使用 spudsoft ExcelEmitter 来呈现静态 excel 报告。
数据来源:Impala jdbc 连接,使用 1 个数据集和 1 个查询
问题是它需要 6 到 7GB 的堆空间 (java) 才能在此报告中呈现 10k 行,以便将所有内容加载到内存中然后将其写入文件。
有没有什么办法可以减少内存占用(可预测的堆空间使用最好在 3GB 以下),同时呈现 excel 表(查询结果分页、部分呈现文件等选项)?