逐行写XSSF文件到输出流? (java中的POI)

时间:2012-02-07 15:56:02

标签: java excel apache-poi outputstream

我有大量数据,我想逐行传输。我认为在更改每行的值后调用workbook.write(stream)会将每个写入到输出流上,但我错了。实际上,文件大小建议/匹配我拥有的行数,但文件本身内只有一行(这是第一行写的)。

有没有办法实现这个目标?就像我能够使用文本文件一样?

我已经看了一下BigGrid的实现,看起来有点矫枉过正。我想尝试做什么。

谢谢!

1 个答案:

答案 0 :(得分:4)

你无法一次性对整个文件进行流式写入,文件格式不能像那样工作。文件的不同部分之间存在引用它的引用。文件格式不像CSV!

相反,您可以做的是在内存中保留一些小部件,将电子表格的大部分流式写入临时文件,然后以低内存方式重新组装以进行输出。为此,请查看POI中的(相当新的)SXSSF用户模型代码。