首页 新闻 搜索 专区 学院

java poi处理excel:向已经存在excel写入数据,效率很慢的问题

0
悬赏园豆:30 [已解决问题] 解决于 2017-09-29 17:07

创建workbook对象:

ins = new FileInputStream(fileTemp);
wb = WorkbookFactory.create(ins);

-----wb对象的处理

-----写入excel

out = new FileOutputStream(fileTemp)

wb.write(out);

每次到wb.write();就卡住了,时间好长,不知道为什么,请问是什么原因,或者有没有其它的办法?非常感谢!

a小萝卜a的主页 a小萝卜a | 初学一级 | 园豆:26
提问于:2017-09-03 01:19
< >
分享
最佳答案
0

默认的处理方式?数据量大时是比较慢的,

你可以尝试一下SXSSF的方式:

http://poi.apache.org/spreadsheet/how-to.html#sxssf

这个是读并且写的例子:

http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/HSSFReadWrite.java

收获园豆:30
X听雨 | 菜鸟二级 |园豆:305 | 2017-09-04 09:17

非常感谢!但是您说的SXSSF只支持2007,我需要支持兼容2007和2007以上版本的

a小萝卜a | 园豆:26 (初学一级) | 2017-09-06 15:55

@a小萝卜a: 格式上差别是出现在2003版本—2007版本,2007以后没听说过有什么格式差别。

默认的处理方式兼容03和07,但是效率和内存占用问题也是存在的,没法绕过。

用户接口可以实现自定义的一些方式,主要就是流式处理提高效率和减小内存占用,如果有精力研究,可以自己处理兼容性的问题。

X听雨 | 园豆:305 (菜鸟二级) | 2017-09-06 16:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册