需求:在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、异步通知方法有短信、邮件、每次刷新页面获取最新状态、长连接方式实时通知