需求:在web页面操作,一次导出百万条数据并生成excel


分析:
1、异步生成Excel,非实时,完成后使用某种方式通知用户
2、生成多个excel文件,并打包成zip文件,因为一个excel容纳不了这么多数据,即使分别放在不同的sheet中也不行,文件太大,打开需要很长时间,用户体验不好
3、如果对数据格式没什么要求,可考虑导出csv文件,字符流,比excel快不少
4、后台可开多个线程,分别生成excel文件,然后再合并
5、可使用poi,但是poi是先将数据放在内存,然后再导出,所以建议一次不要在内存放过多数据,导致内存不足
6、poi有个专门处理大数据库的类(SXSSFWorkbook),没使用过,可参考:http://blog.csdn.net/little_stars/article/details/8266262
7、可尝试说服客户每天定时生成excel文件,而非通过用户操作生成
8、异步通知方法有短信、邮件、每次刷新页面获取最新状态、长连接方式实时通知

最新文章

  1. Cas 介绍及使用
  2. 制作简单的2D物理引擎(一)——动力学基础
  3. jQuery中的get()方法
  4. tool list
  5. Redis客户端开发包:Jedis学习-高级应用
  6. lsb_release 提示命令不存在
  7. 手机摄像头扫描识别车牌号,移动端车牌识别sdk
  8. flask中使用xlsxwriter导出excel文件
  9. CAGradientLayer简介 实现颜色渐变
  10. C#.Net Core 操作Docker中的redis数据库
  11. Python集成开发工具Pycharm的使用方法:复制,撤销上一步....
  12. live-server
  13. HTML5中<template>标签的详细介绍
  14. HTML和CSS中判断IE版本并实现相应HTML和CSS
  15. js 去掉重复数组
  16. How to set JAVA environment variables in Linux or CentOS
  17. iis实现点击文件下载而不是打开文件
  18. java动态代理中的invoke方法是如何被自动调用的(转)
  19. 怎么得到scrollTop
  20. PAT 天梯赛 L1-024. 后天 【取余】

热门文章

  1. uva 816 abbott's revenge ——yhx
  2. NYOJ--1237最大岛屿
  3. hdu 5862 Counting Intersections
  4. HDU 4782 Beautiful Soup --模拟
  5. HDU 2082 找单词 --生成函数
  6. 看ImplicitBackwardEulerSparse关于static solve的代码
  7. 谈谈Git的忽略规则.gitignore
  8. CSS3弹性伸缩布局(一)——box布局
  9. 12个JavaScript技巧
  10. C语言 二级指针内存模型③