excel导出

常规导出的excel通常是用HSSFWorkbook

HSSFWorkbook:这个的导出重心就会成为两步:一步是在数据获取部分,如果使用分页查询来进行,会将查询出的数据汇总在内存当中,这样对服务器的内存消耗压力很大,同时在写excel的时候,HSSFWorkbook对内存要求更高,这样很容易造成excel的导出内存溢出
流式导出:
SXSSFWorkbook:是用来生成海量excel数据文件,主要塬理是借助临时存储空间生成excel,
SXSSFWorkbook专门处理大数据,对于大型excel的创建且不会内存溢出的,就只有SXSSFWorkbook了。
它的塬理很简单,用硬盘空间换内存(就像hashmap用空间换时间一样)。SXSSFWorkbook是streaming
版本的XSSFWorkbook,它只会保存最新的excelrows在内存里供查看,在此之前的excelrows都会被写入到
硬盘里(Windows电脑的话,是写入到C盘根目录下的temp文件夹)。被写入到硬盘里的rows是不可见的/不
可访问的。只有还保存在内存里的才可以被访问到。
注:HSSFWorkbook和XSSFWorkbook的ExcelSheet导出条数上限(<=2003版)是65535行、256列,(>=2007版)
是1048576行,16384列,如果数据量超过了此上限,那么可以使用SXSSFWorkbook来导出。实际上上万条数据,
甚至上千条数据就可以考虑使用SXSSFWorkbook了

抱歉,没有具体的代码实现,但是思路是对的,并且已经付诸行动,写的内存消耗已经下降,待后期添加

 

posted @ 2020-06-07 08:17  轩钰儿  阅读(325)  评论(0编辑  收藏  举报