excel导出,如果数据量在百万级,会出现俩点内存溢出的问题: 1. 查询数据量过大,导致内存溢出。 该问题可以通过分批查询来解决; 2. 最后下载的时候大EXCEL转换的输出流内存溢出;该方式可以通过新版的SXSSFWorkbook来解决,可通过其构造函数执指定在内存中缓存的行数,剩余的会自动缓存在硬盘的临时目录上,同时,并不会存在页面卡顿的情况; 3. 为了能够使用不同的mapper并分批写数据, 采用了外观模式和模板方法模式,大体分三步: a. 根据总数量生成excel,确定sheet的数量和写标题; b. 写数据,在可变的匿名内部类中实现写入逻辑; c. 转换输出流进行下载; POI小demo已传github: https://github.com/kai-li-love/project/tree/master