读书人

[请问]jxl生成xls时,支持quot;合并quot;或quot;磁盘

发布时间: 2012-11-01 11:11:31 作者: rapoo

[请教]jxl生成xls时,支持"合并"或"磁盘缓存"吗(导出大数据量时)
jxl 由于其小巧 易用的特点, 逐渐已经取代了 POI-excel的地位, 成为了越来越多的java开发人员生成excel文件的首选.

但是由于长时间没有接触jxl了 对他的新版本不是很了解,
不知道能不能实现我下面的几个需求, 还请大家多帮个忙.

在生成excel时, jxl 的做法是在内存中构造出一个xls文件的对象
然后在最后write时生成最终的excel文件.
也就是说,在把excel所有的数据全部准备完毕(加入到那个xls的对象中) 之前,
这个超大对象一直是在jvm的内存中的, 这就导致大批量数据,如 100列10万行, 根本无法生成 OOM了.

我想问的就是, jxl是否支持生成若干个小的xls文件, 然后合并的功能(基于磁盘的合并, 而不是全部读入内存 在合并,这种合并还是要占用大量甚至更多的内存的,对于解决我的问题毫无帮助)

或者是 能不能让它在最终生成excel文件之前, 就把一部分内容写入磁盘的临时文件中,从而保证对内存的占用量一直维持在比较低的水平?

如果都不支持, 那么我想问一下 ,大家是怎么导出超大数据量的excel的?


P.S.: 哪位英语好 能不能帮我把我的问题反馈给 jxl的作者呢?
我觉得从技术角度来讲 我的那两个需求应该是完全能都实现的.





baidu 到一个
http://zhidao.baidu.com/question/8374118.html?fr=qrl


这些计算机X级考试的问题,怎么会没被我们考虑到。。。
而不是在讨论 excel导出行数的问题

即使我只导出1000行,列数很多 每个单元格的数据量很大,而且机器的内存小,
那么也很容易产生 OOM的问题.


生成插入的代码都是

变成了 
正好小刺激某人一下 19 楼 xxboy 2008-08-03 好像excel最多也就是支持6w行数据吧 20 楼 fins 2008-08-03 excel2007没有这个限制

而且 excel的老版本的限制也只是 每个sheet页最多255列 65525行
一个excel是可以有多个sheet页的 21 楼 Wisdom7 2008-08-05 我用JXLS,只做过生成过几百个SHEET,每SHEET有500个CELL左右,没对JVM调过优。
因为要生成封面和封底,当时的做法是先用模板生成多个WORKBOOK后再合并的,不过JXLS又是基于POI而已 22 楼 ciyuanlong 2008-08-06 虽然有行数限制(65535),但是那是一个sheet的数量,我曾经写过14w多,分sheet,是在hp530服务器上,jvm开的很大,但是超过这个数量就不行了,内存不够了 23 楼 seemoon 2008-08-12 可以分批生成xls文件,如有100w数据,生成20个xls文件,每个文件5w条记录,并且对每个文件的文件名作number索引,然后zip并且下载。 24 楼 fins 2008-08-12 如何把这些文件合并成一个文件呢?
因为客户的需求 是希望在一个文件里 便于打印 25 楼 Wisdom7 2008-08-12 如果用POI的话,直接用流读取生成的EXCEL后转成WORKBOOK,就可以合并了

读书人网 >软件架构设计

热点推荐