回复: 大数据量导出Excel的方案

http://www.iteye.com/post/1085796 [quote="sjpsega"][quote="biguan"][quote="tidus2005"][quote="biguan"]我同事最近要把1000万条记录从数据库导到excel里,在我的帮助下解决了。呵呵。原创的。因每个excel最多放5万条,所以他把这1000万条记录记录放到了200个excel文件里。用时40分钟。采用基本的jdbc技术+io流。 1.先进一个excel文件。填上要的表头和两条记录。然后另存为网页a.html。 2.用记事本打开网页a.html,就看到源代码。把源代码分成三部分:头+记录行+尾。 3.用jdbc访问数据库,循环遍历,每5万条,用io流写文件,格式为"xxx.xls”。 a.html的头代码+记录行代码(已经被5万条替换)+尾代码。[/quote] 没有看太懂你的意思, 用html是干什么? [/quote] 用java的io写txt格式的文件,大家都会吧? 其实,也可以用java的io写xls格式的文件的。关键是你得按一定的excel文件格式写,才能保证生成的是excel文件。 这个格式怎样得到呢?方法是这样: 你先建一个excel文件,如a.xls。填上两条伪数据。然后另存为网页,即htm格式,如a.htm。 然后,用记事本打开htm格式的a.htm,这样excel文件格式代码就暴露在你面前。 剩下的事,呵呵,就是把a.htm源代码的伪数据部分,替成数据库里的数据,然后把替换后的整个a.htm源代码,用java的io写成一个[b]后缀为xls的文件[/b]。就打完收工了。 注意:为了不给内存增加压力,要把a.htm源代码分成三部分:头(伪数据部分 前的代码) + 伪数据部分 + 尾(伪数据部分 后的代码)。 先把 头 写到文件,并flush。然后是 伪数据部分 ,替一条数据库里的记录就写到文件里,并flush。最后把 尾 写到文件,并flush。 [/quote] 呵呵,你的方法很好啊,其实我本来也想到直接用io生成XLS文件的,不会我是直接用记事本打开的,结果看到乱码 - - 还有写io你提到了重点,就是要经常flush,不然数据大就OOM了。 我的方法也主要就是拼字符串,还有就是从数据库读取的数据采用分页的形式,用list分次读取出来,结束采用list.clear()一下,及时把资源释放。[/quote]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值