导出excel功能(解决大数据量问题)
2015-09-28 10:50
295 查看
例如:三明移动公司的积分系统,因需求所需,客户如果要导出20多万条记录的话,系统速度都很慢,最终导致内存益出死机;原本以为是频繁把数据放在集合的原因,可是我又有分页觉得不是主要原因,经与黄振华的商讨和测试,发现主要是因为频繁把数据插入到excel的原因,数据量一大就会占用系统很多内存;所以我们最好不要用java提供的操作excel的api(HSSFWorkbook workbook = new HSSFWorkbook();...)
这里推荐往文本文件直接插入记录的方式(速度快,占内存也少),然后用\t割开代表一列,到时候产生的文件,直接用excel打开就可.具体如下:
String path="c:/test.xls";//数据存放的位置
BufferedWriter buff = new BufferedWriter(new FileWriter(path));//生成文件
//插入标题
buff.write("部门名称\t用户\t电话");//代表3列
buff.write("\r\n");//换行
//插入5万条记录
for (int i = 0; i < 50000; i++) {
buff
.write("短信营业厅\t小吴\t123456");
buff.write("\r\n");
}
buff.close(); //关闭文件操作
备注:由于打开excel的时候一个sheet只显示6.5万左右的记录,所以记录超过5,6万的时候,推荐生成多个文件,一个文件5万行左右就好
相关文章推荐
- Kafka+Storm+HDFS整合实践
- flume-ng+Kafka+Storm+HDFS 实时系统搭建
- HDU 1022 Train Problem I (STL - 栈的使用)
- mysql大数据相关优化记录
- does not contain bitcode ShardSDK等三方库
- [个人推荐]理解poll_wait
- 【mongoDB中级篇②】索引与expain
- bsfl汇编指令 http://blog.csdn.net/chief1985/article/details/2441182
- SQUARE Probelm_codewars daily train9/27
- HT for Web 中Painter的介绍及用法
- HT for Web 中Painter的介绍及用法
- BAT带队烧钱圈地华为们猛追云计算
- UVA 442 Matrix Chain Multiplication
- gtk+ 环境下,遇到assertion 'GTK_IS_NOTEBOOK (notebook)' failed,怎么破?
- 【VMCloud云平台】私有云门户第一朵VM云(一)
- 欧拉工程第74题:Digit factorial chains
- obtainKeywords
- 树莓派2B + Windows IoT
- 2015 ACM/ICPC Asia Regional Shanghai Online
- leetcode11 Container With Most Water