社区
Java EE
帖子详情
java 导出excel百万级数据量
flyingfish1987
2011-07-13 09:56:53
jdbc操作oracle数据库,导出excel,要求10分钟内执行完毕,并下载到客户端;
现在问题是,执行生成excel文件时发生内存溢出,分析原因有可能是遍历resultset生成数据到excel时产生问题;
分批次生成excel文件只生成了第一次查询出的数据。
请求一个好的解决方案,并指点相应代码。
谢谢各位资深大虾!
...全文
1340
33
打赏
收藏
java 导出excel百万级数据量
jdbc操作oracle数据库,导出excel,要求10分钟内执行完毕,并下载到客户端; 现在问题是,执行生成excel文件时发生内存溢出,分析原因有可能是遍历resultset生成数据到excel时产生问题; 分批次生成excel文件只生成了第一次查询出的数据。 请求一个好的解决方案,并指点相应代码。 谢谢各位资深大虾!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
33 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
flyingfish1987
2011-07-13
打赏
举报
回复
[Quote=引用 21 楼 yanjinye 的回复:]
加一些条件,控制一次不能导出那么多,
查询百万数据都要时间的啊!
[/Quote]
现有代码可以实现10万左右导出,但时间比较长,20W以上会出现内存溢出,百万级数据只能分批查
随风醉舞
2011-07-13
打赏
举报
回复
加一些条件,控制一次不能导出那么多,
查询百万数据都要时间的啊!
随风醉舞
2011-07-13
打赏
举报
回复
靠,百万啊?5、6万就内存溢出了!
好像一个excel不能储存百万数据吧,
最多十万左右吧!
sunny110
2011-07-13
打赏
举报
回复
引用 13 楼 sunny110 的回复:
但是如果是电话号码如:05******,以excel打开会丢失前面的0
这个问题也遇到过,直接在宏中,转换成文字列就行
手动转毕竟太费劲了
谁给你说手动了。
我说的是,写一个宏自动转文字列
flyingfish1987
2011-07-13
打赏
举报
回复
[Quote=引用 17 楼 xianaofei 的回复:]
首先你必须导入到多个EXCEL吧
查询出的数据用异步存储起来
你可以用开3-5个线程 同时处理 这样速度快
[/Quote]
单线程已经够费劲了,目前不考虑多线程,毕竟如果再来几个用户也要导呢?如果10个用户一起呢,100个的话就更不要提了,虽然用户不会太多,但还是有这个可能的
xianaofei
2011-07-13
打赏
举报
回复
首先你必须导入到多个EXCEL吧
查询出的数据用异步存储起来
你可以用开3-5个线程 同时处理 这样速度快
flyingfish1987
2011-07-13
打赏
举报
回复
[Quote=引用 14 楼 flyoversky 的回复:]
太疯狂了,百万级数据的EXCEL
[/Quote]
以后也许会有千万级或者上亿级的~ 悲催了~
flyingfish1987
2011-07-13
打赏
举报
回复
[Quote=引用 13 楼 sunny110 的回复:]
但是如果是电话号码如:05******,以excel打开会丢失前面的0
这个问题也遇到过,直接在宏中,转换成文字列就行
[/Quote]
手动转毕竟太费劲了
flyoversky
2011-07-13
打赏
举报
回复
太疯狂了,百万级数据的EXCEL
sunny110
2011-07-13
打赏
举报
回复
但是如果是电话号码如:05******,以excel打开会丢失前面的0
这个问题也遇到过,直接在宏中,转换成文字列就行
flyingfish1987
2011-07-13
打赏
举报
回复
[Quote=引用 11 楼 qingfeng_sakura 的回复:]
用excel打开百万级数据会疯掉的!!
[/Quote]
所以选择分文件导出
无所依赖
2011-07-13
打赏
举报
回复
用excel打开百万级数据会疯掉的!!
flyingfish1987
2011-07-13
打赏
举报
回复
[Quote=引用 9 楼 sunny110 的回复:]
这个问题可以解决
首先 生成TSV文件,让后把TSV拷贝到EXCEL2007中就可以了。
速度没有问题,已经测试过。
[/Quote]
但是如果是电话号码如:05******,以excel打开会丢失前面的0
sunny110
2011-07-13
打赏
举报
回复
这个问题可以解决
首先 生成TSV文件,让后把TSV拷贝到EXCEL2007中就可以了。
速度没有问题,已经测试过。
flyingfish1987
2011-07-13
打赏
举报
回复
[Quote=引用 7 楼 guowangsheng2011 的回复:]
你可以在服务器上生成多个excel,压缩后再到客户端
[/Quote]
这样太慢了,客户端显示是一直在查,要等很久,
我想实现一次查询生成一个文件,然后客户端收到后,其他文件陆续生成到客户端,按文件名+[0]/[1]/[2]的方式
一品
2011-07-13
打赏
举报
回复
你可以在服务器上生成多个excel,压缩后再到客户端
noway198199
2011-07-13
打赏
举报
回复
这个业务谁提出来的?那这个EXCEL还打得开吗?
flyingfish1987
2011-07-13
打赏
举报
回复
我现在是分文件,每次查询都是一个文件,一个文件5W数据量,但是生成到客户端只有第一次查询的一个文件
manyroads
2011-07-13
打赏
举报
回复
excel 2007 行数已经扩充很多啦
brightyq
2011-07-13
打赏
举报
回复
excel一个页签只能放6万多行。百万的要放到多少个页签里?
加载更多回复(13)
多线程
导出
Excel
(
百万
级
别)_
Java
版优化.zip
用开源 Apache POI 技术
导出
Excel
,解决
导出
大数据出现OOM、栈溢出问题,此资源可实现
百万
级
数据多线程分批
导出
Excel
文件,不会内存溢出,生产环境已很稳定的使用者,所以用到的技术很核心、值得参考
java
多线程
导出
excel
(千万
级
别)优化
轻松解决普通poi形式
导出
Excel
的中出现的栈溢出问题,此资源可实现千万
级
数据分批
导出
csv文件,csv大
数据量
导出
(千万
级
别,不会内存溢出),多线程
导出
,生产环境已经很稳定的使用着
java
解决大批量数据
导出
Excel
产生内存溢出的方案
java
解决大批量数据
导出
Excel
产生内存溢出的方案
java
实现csv
导出
千万
级
数据实例
轻松解决普通poi形式
导出
Excel
的中出现的栈溢出问题,此资源可实现千万
级
数据分批
导出
csv文件,测试实现16500000条数据大概80秒左右;具体表里内容。
poi_模板
导出
excel
,支持
百万
级
数据模板
导出
poi导入、
导出
,支持
百万
级
数据模板
导出
、合并
excel
。项目为spring-boot-2上开发。resource里面有模板,在junit测试类中修改为本地存在路径即可
导出
文件,在junit测试类中修改for循环的i可以模拟
百万
级
数据
导出
。注意...
Java EE
67,512
社区成员
225,880
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章