xuan的空间

我们一直在努力....

导出数据到excel和xml的方法(一)

标签: 导出数据到excel 导出数据到xml 导出数据

导出数据到Excel和xml的方法有多种,速度也有快慢之分,下面我分别介绍一下我使用过的导出数据到Excel和导出数据到xml的方法,如果有更好的建议欢迎大家留言讨论。

导出数据的条件:
导出数据总数为100000条,每条数据条数为22个字段。

一、导出数据到excel的方法

导出数据到Excel方法一:一次性全部导出数据到一个Excel文件中。
实际情况均报OutOfMemery错误,以下数据为报OutOfMemery数据时,数据到的最大数据数目,如表1所示:
表1:报OutOfMemery错误时所能处理的导出数据量

 

 

FastExecl

POI

JXL

10000数据/sheet

37465

28996

42270

5000数据/sheet

39096

31487

46270

3000数据/sheet

39000

32493

47860

导出数据到Excel方法一小结
多分sheet能一定程度上减少内存的使用,但是均因为程序中创建的Cell(即为Excel中的一个单元格)无法释放,消耗大量内存,导致OutOfMemery错误;JXL表现最好,创建Cell内存使用较少。

导出数据到Excel方法二:先分多个Excel文件全部导出数据,然后对多个Excel文件进行合并。
首先,测试将全部导出数据所用的时间,如表2所示,数据均测试三次取平均。
表2:全部导出数据所用时间

 

FastExecl

POI

JXL

10000数据/文件

68s

33s

30s

5000数据/文件

68s

32s

33s

3000数据/文件

59s

33s

39s

均成功导出数据到Excel文件,原因是导出一个Excel文件,释放所占用的创建Cell的内存。
FastExecl表现最差,POI表现稳定,JXL随着数据的增大,速度一定程度上增快。

导出数据到多个Excel文件后进行整合,由于将多Excel合并成一个Excel文件的功能只有POI所有,故使用POI测试,结果如表3所示。
注:数据量大合并还会报OutOfMemery错误,故合并总数据量以5万为准。
表3:合并5万数据所用时间

 

时间

10000数据/文件

11s

5000数据/文件

11s

3000数据/文件

11s

导出数据到Excel方法二小结:  
使用POI对文件进行合并速度较快,但有数据量的限制。

总结:导出数据到Excel的方法二比较可行,但是数据量有限制,为5万条。

导出数据到excel的效果总是存在一些问题,那么导出数据到xml又将如何呢?、

请看下一篇导出数据到excel和xml的方法(二)


    分享: 收藏到CSDN 收藏到javaeye 收藏到博客园 收藏&分享
  • 浏览 (702)
  • 评论 (0)
  • 发表于 2009-07-17 09:17
  • 程序
    评分: 请先登录再投票,同一篇博客一月只能投票一次!
    无人投票

相关博客:


评论


发表评论

最近访客
关注此文的人们还关注