浏览 6260 次
锁定老帖子 主题:excel的大数据量用POI读取
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-03-31
普通的读取依然会OOM 无奈继续查资料。记得看到一篇文章上说XSSF默认用DOM解析XML的,那必然会OOM了,于是开始找用SAX读的例子,找到了应该比较经典的FromHowTo.java(http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/examples/FromHowTo.java) 用这个例子还是碰到了挺多问题 1. 写入的逻辑会嵌入到这个读取里..它并没有提供比较友好的getRow之类的一行一行处理的方法..导致我的代码写地很猥琐.. 2. SharedStringsTable sst = r.getSharedStringsTable();这段代码依然会抛OOM. 看提问频道有一个哥们也碰到了同样的问题..都已经用SAX解析了还是OOM是挺尴尬的..目前的解决方法是开大了一些内存..- -..简单有效..基本上代码跑过了这行以后的读取就不怕OOM了.. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-04-02
我认为excel大数据量的读写是很糟糕的设计
|
|
返回顶楼 | |
发表时间:2011-04-02
客户把50万的数据用excel传了过来,excel不是有65535条数限制吗,50万是怎么弄出来的。
|
|
返回顶楼 | |
发表时间:2011-04-02
albb0608 写道 客户把50万的数据用excel传了过来,excel不是有65535条数限制吗,50万是怎么弄出来的。 office2007没有这个限制了。 可以直接把xlsx文件当zip解压出来xml文件自行处理。 |
|
返回顶楼 | |
发表时间:2011-04-02
他能写出来你就可以读出来,建议直接解析binary协议
|
|
返回顶楼 | |
发表时间:2011-04-02
yangyi 写道 他能写出来你就可以读出来,建议直接解析binary协议 office 97-2003是biff8的二进制格式 2007+是ooxml的文本格式 |
|
返回顶楼 | |
发表时间:2011-04-04
我最近也在搞这样的问题 我们还没有一个固定的excel上传模板 列的内容是一定的 但顺序不一定 现在没什么好的思路啊
|
|
返回顶楼 | |