论坛首页 Java企业应用论坛

大数据量导出Excel的方案

浏览 62997 次
精华帖 (1) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-19  
学习了正需要导出了 好好看看能行么我的也是一直在包内存溢出
0 请登录后投票
   发表时间:2010-03-19  
还是用CSV吧,我曾经搜索47个excel,各个xls的数据量大小不一,大的2M小的几十K
然后把找到的数据一起放到csv中,一共44000多条,共用44秒,感觉很好,如果用excel根本不行
0 请登录后投票
   发表时间:2010-03-19  
ray_linn 写道
最简单得莫过于在excel里写一段vba脚本, VBA脚本采用AJAX的方式去和server端数据通讯,并负责填充表单。

好处:

1. 局域网内服务器端产生数万条数据并通讯并不需要耗费许多时间。

2. 表单的填充在客户端完成,不需要耗费服务器的时间。



vba里容易假死,很别扭的。
0 请登录后投票
   发表时间:2010-03-19  
excel2003的话,自己看biff8,格式固定的话,自己写二进制也不难。
excel2007就更简单了,自己写xml,然后zip即可。
0 请登录后投票
   发表时间:2010-03-19  
csv不支持sheet
普通的操作excel的包,超过3万条容易内存溢出
所以没有完美的解决方案
很多人都是使用导出多个文件,最后合并的
如楼上所说的用xml,但是很多单位office还是用的2003版的
0 请登录后投票
   发表时间:2010-03-19  
lkj107 写道
csv不支持sheet
普通的操作excel的包,超过3万条容易内存溢出
所以没有完美的解决方案
很多人都是使用导出多个文件,最后合并的
如楼上所说的用xml,但是很多单位office还是用的2003版的

我什么时候说csv了,
我说 biff8
0 请登录后投票
   发表时间:2010-03-19  
POI也是可以的
0 请登录后投票
   发表时间:2010-07-07  
vlinux 写道
我的做法是:
1.用jxl,养成经常write()的习惯
2.每6W条记录分一个sheet
3.JAVA循环的时候要记得不要在循环体中分配太多内存,避免系统回收时占用过高的CPU资源--本来导出时候已经很消耗CPU了
4.每次导出先创建一个不重复的临时的文件,等文件导好后再重命名为可用的文件,这样可以避免用户导出的时候强行终止所带来的莫名其妙的文件记录,重命名好后入库,通知前台可以下载--或者可以省略掉重命名这步?

请问你这里的第一条,是什么意思? 我查询了一个list出来,想循环一个list就write一次。结果,除了第一条数据,其他都没写到文件里面。也没有找到合适的api,搞不懂了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics