excel - 如何在 BIRT Excel 报告中呈现大量行(50k 的数量级)?

标签 excel birt birt-emitter

我在 java 项目中使用 BIRT 运行时 4.8.0 来生成 Excel 报告。 Excel 报告有 1k 列,可以有 10k 到 50k 行(1 个查询的结果,映射到 1 个表)。我正在使用 spudsoft ExcelEmitter 来呈现静态 Excel 报告。

数据源:Impala jdbc 连接,使用 1 个数据集和 1 个查询

问题是,仅在该报告中渲染 10k 行就需要 6 到 7GB 的堆空间 (java),以便将所有内容加载到内存中,然后将其写入文件。

在渲染 Excel 工作表(查询结果分页、分段渲染文件等选项)时,是否有任何方法可以减少内存占用(可预测的堆空间使用量最好低于 3GB)?

最佳答案

我用新版本的 spudsoft 发射器解决了这个问题。 这会将 apache poi 从 xssf 更改为 sxssf:

ExcelEmitter.ExtractMode 实验性功能!当设置为 true 时,发射器对于 XLSX 文件应该运行得更快,但功能集有限:

  • 图像将被省略。
  • 不允许合并单元格。
  • 不支持结构页眉和页脚。请参阅 ExcelEmitter.StructuredHeader。

https://www.eclipse.org/forums/index.php/m/1804253/#msg_1804253

关于excel - 如何在 BIRT Excel 报告中呈现大量行(50k 的数量级)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52690189/

相关文章:

excel - 使用 Excel VBA 将图片粘贴到 Outlook 邮件中的文本上

sql - 如何基于多个数据集创建 BIRT 报告

mysql - Birt report - 计算符合条件的次数

eclipse - 尝试调试 birt 报告时出现异常

java - BIRT csv 发射器插件错误 -

java - Birt:内存不足,无法执行报告

birt - Eclipse 4.4.1 - BIRT 报告预览错误 - 无法初始化发射器 - 访问被拒绝

javascript - 将 HTML 表格导出到 Excel 时的阿拉伯编码

excel - VB6不终止Excel进程

VBA检查给定范围内是否有任何单元格不为空白