毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

java 大量数据导出为Excel 内存溢出

更新时间:2013-3-8:  来源:毕业论文

java 大量数据导出为Excel 内存溢出
从数据库中按查询条件一次性获取大量数据,要把这些数据导出为Excel,当前超过8000左右就出现内存溢出,请问如何做到一次性导出5万条左右的数据。

如果是用poi或者jxl之类的,肯定会内存溢出。
因为,它们都是一次在内存生成整个excel对象。
poi最新版本倒是支持excel2007写临时文件,但是2003不能用。
有一种做法就是不以excel的形式导出,如:Excel另存为XML格式,以此XML为模板,将需要导出的内容拼接为XML字符串按顺序写到一个后缀为xls的文件中。也能用Excel打开的,但是这种情况适用于导出的是数据列表,如果有公式、图表之类的就不适用了。这种方式导出几十W都没问题。毕业论文 

简而言之就是拼接符合Excel格式的XML字符串写到一个你想写到的地方,直接response中写到用户浏览器也可以啊。
你随便找个简单的Excel另存为XML,就能理解我说的了。
POI或者JXL的话把服务器内存占满,导死服务器是肯定会发生的,跟数据条数还有字段个数都有关系。如果不对导出请求做并发限制,那结果会更严重。
如果要跟踪内存占用情况的话用jprofile监控下内存,做下代码级优化,但是效果不会改善多少的。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。