java读大excel怎么读
之前用poi发现一次性把整个文件都放到内存中了 太耗费 有其他方案吗 求高手赐教
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
之前用poi发现一次性把整个文件都放到内存中了 太耗费 有其他方案吗 求高手赐教
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(15)
分割excel很难 没有必要分割只要部分到内存就OK
现在我重写了部分poi源码 添加了一种读模式 只读数据不读样式 先用着吧 看有木有更好方法再修改
一样的意识,一个在内存中分割,一个用硬盘分割
为什么不考虑先把它分成小文件,然后一个个读
我去试试
不考虑跨平台用那个javacom也可以,直接调用本地api。
poi吧 有这个工具包 你网上找个例子就可以了 很简单
sax读取方式,它是一个标签一个标签的读取,对内存的要求不高,我做过这方面的,sax的缺点是不支持添加节点和修改节点。
new workbook的时候就到内存了
分次读取,每次读取指定行数。只要不OOM就行。
能否给个例子
@王文峰 官网
关键我们不能控制用户提交什么格式 有些用户就是要提交好多样式的excel 造成我一new这个workbook就卡很久
主要和单元格数量有关系,都是对象啊。可以试着把各种格式去掉会小一点。再不行只能拆文件
我知道的java操作excel的方法有以下几种:
1、poi,用过,没有深入研究,但是你已经用过了,不用多说;
2、jxl,个人觉得应用起来相对简单,但一样是将所有数据加载到内存中,且每个单元格都是一组对象;
3、jdbc,“听说”这种方式只能读,不能写;没具体实验过;或许内存消耗会好一些;注意这种方式“可能”只能在windows平台上使用;
4、jni,当遇到java语言本身很难解决的问题时,jni永远是万能的良药;当然,副作用也是很严重的;