Java POI三种Workbook:HSSFworkbook,XSSFworkbook,SXSSFworkbook主要区别 |
您所在的位置:网站首页 › excel2007与excel2022有什么区别 › Java POI三种Workbook:HSSFworkbook,XSSFworkbook,SXSSFworkbook主要区别 |
Apache POI包中的HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook的区别如下: HSSFWorkbook:一般用于操作Excel2003以前(包括2003)的版本,扩展名是.xls。XSSFWorkbook:一般用于操作Excel2007及以上的版本,扩展名是.xlsx。SXSSFWorkbook(POI 3.8+版本):一般用于大数据量的导出。比如数据量超过5000条即可考虑这种工作表第一种:HSSFWorkbook 针对EXCEL 2003版本,扩展名为.xls,此种的局限就是导出的行数最多为65535行。因为导出行数受限,不足7万行,所以一般不会发送内存溢出(OOM)的情况 第二种:XSSFWorkbook 这种形式的出现是由于第一种HSSF的局限性产生的,因为其导出行数较少,XSSFWorkbook应运而生,其对应的是EXCEL2007+ ,扩展名为.xlsx ,最多可以导出104万行,不过这样就伴随着一个问题–OOM内存溢出。因为使用XSSFWorkbook创建的book sheet row cell 等是存在内存中的,并没有持久化到磁盘上,那么随着数据量的增大,内存的需求量也就增大。那么很有可能出现 OOM了,那么怎么解决呢? 第三种:SXSSFWorkbook poi.jar 3.8+ SXSSFWorkbook可以根据行数将内存中的数据持久化写到文件中。 此种的情况就是设置最大内存条数,比如设置最大内存量为5000行, new SXSSFWookbook(5000),当行数达到 5000 时,把内存持久化写到文件中,以此逐步写入,避免OOM。这样就完美解决了大数据下导出的问题 另注:HSSFWorkbook的Excel Sheet导出条数上限(=2007版)是1048576行,16384列, 如果数据量超过了此上限,那么可以使用SXSSFWorkbook来导出。实际上上万条数据, 甚至上千条数据就可以考虑使用 SXSSFWorkbook了。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |