excel - Primefaces DataExporter - XLSX 和 XLSXSTREAM

标签 excel jsf primefaces apache-poi primefaces-dataexporter

似乎在最新版本的 PrimeFaces 中,为 DataExporter 添加了新类型(请参阅当前 primefaces 6.2 文档中的 ExporterType)

我似乎在网络上找不到有关新 Apache POI XLSX 和 XLSXSTREAM 类型的任何内容。有人可以解释一下他们两个之间的区别吗?其中一个比另一个更有效率吗?导出数据的大小有限制吗?

最佳答案

我可以解释一下。它们都生成完全相同的 XLSX 文件,这些文件是使用 Apache POI 的 Excel 文件的开放文档格式。据我所知,大小没有限制。

最大的区别在于它们的创建方式。

XLSX - 读取内存中的整个文档

XLSXSTREAM - 在处理时进行处理和垃圾收集,因此内存效率高。

来自 POI 文档:

SXSSF (package: org.apache.poi.xssf.streaming) is an API-compatible streaming extension of XSSF to be used when very large spreadsheets have to be produced, and heap space is limited. SXSSF achieves its low memory footprint by limiting access to the rows that are within a sliding window.

基本上,如果您不关心服务器资源,如果您有许多用户下载 Excel 文件,并且 JVM 内存对您很重要,请使用 XLSXSTREAM

关于excel - Primefaces DataExporter - XLSX 和 XLSXSTREAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51741023/

相关文章:

arrays - 在 Excel 中输出数组

java - rich :column and rich:columns有什么区别

css - 从 SelectOneMenu 中移除顶部阴影

mysql - 行编号为 p :dataTable

jsf - 如何保留primefaces数据表的排序顺序?

java - JSF <p :inputText> not updating after validation

math - 计算进度条的百分比填充

php - 使用 php 使用 excelreader2.php 将 excel 数据导入 mysql

python - 如何在数据框中添加一列来说明每行来自哪个工作表名称? Python

java - 谷歌应用引擎: f:setPropertyActionListener with p:ajax