POI之SXSSFWorkbook大量数据导出

POI之SXSSFWorkbook大量数据导出

一:简介微信

          SXSSFWorkbook是用来生成海量excel数据文件,主要原理是借助临时存储空间生成excel,markdown

          SXSSFWorkbook专门处理大数据,对于大型excel的建立且不会内存溢出的,就只有SXSSFWorkbook了。大数据

          它的原理很简单,用硬盘空间换内存(就像hashmap用空间换时间同样)。 SXSSFWorkbook是streaming版本的XSSFWorkbook,它只会保存最新的excel rows在内存里供查看,在此以前的excel rows都会被写入到硬盘里(Windows电脑的话,是写入到C盘根目录下的temp文件夹)。被写入到硬盘里的rows是不可见的/不可访问的。只有还保存在内存里的才能够被访问到。 spa

          注:HSSFWorkbook和XSSFWorkbook的Excel Sheet导出条数上限(<=2003版)是65535行、256列,(>=2007版是1048576行,16384列,若是数据量超过了此上限,那么可使用SXSSFWorkbook来导出。实际上上万条数据 甚至上千条数据就能够考虑使用SXSSFWorkbook了。excel

        注意:首先须要引入依赖:注意:4.0.0版本的JDK须要1.8以上,若是JDK是1.7的,那么就使用3.9版本的依赖code

二:实例一,咱们使用SXSSFWorkbook向Excel中写入50万条数据,只须要34秒左右,内存占用率最多在700M左右,CPU使用率在25%左右orm

cpu的使用率甚至不到25%,运行大概持续了一两分钟图片

三:咱们使用XSSFWorkbook常规的方法分批向excel中写入50万条数据,内存占用率最多在  2.1个G左右(占用了很大的内存),CPU使用率在90%左右 ,最后内存溢出了内存

cpu使用率最大在96%,运行大概持续了不到十分钟左右hash

微信图片_20210810152001.png

相关文章
相关标签/搜索