日期:2014-05-20  浏览次数:20823 次

java 导出excel百万级数据量
jdbc操作oracle数据库,导出excel,要求10分钟内执行完毕,并下载到客户端;
现在问题是,执行生成excel文件时发生内存溢出,分析原因有可能是遍历resultset生成数据到excel时产生问题;
分批次生成excel文件只生成了第一次查询出的数据。
请求一个好的解决方案,并指点相应代码。
谢谢各位资深大虾!

------解决方案--------------------
首先你必须导入到多个EXCEL吧
查询出的数据用异步存储起来
你可以用开3-5个线程 同时处理 这样速度快
------解决方案--------------------
引用:
但是如果是电话号码如:05******,以excel打开会丢失前面的0

这个问题也遇到过,直接在宏中,转换成文字列就行



手动转毕竟太费劲了 

谁给你说手动了。
我说的是,写一个宏自动转文字列

------解决方案--------------------
靠,百万啊?5、6万就内存溢出了!
好像一个excel不能储存百万数据吧,
最多十万左右吧!
------解决方案--------------------
一次导出!!!这么疯狂的想法也只有疯狂的脑袋才能提出来这样的需求。还是想办法自动分页,自动创建新的Excel,自动分批导出吧!!!一个用户百万,N个用户得N个百万!太疯狂了!!!
------解决方案--------------------
没搞错,能打开吗,还是按类别,时间什么的给分分,限制下,然后在导出
------解决方案--------------------
数据库写个job每天跑,然后生成上一天的数据文件,用户要查哪天的直接给他调文件,数据这么多,实时的读取数据库,客户不疯你不疯,数据库都会疯的……