java模板导出excel_POI导出excel模板三种方式

POI简介

POI是Apache软件基金会用java编写的免费开源的跨平台的Java API,提供API给java程序对Microsoft Office格式档案读和写的功能,一般用来操作Excel文件。用javaPOI导出Excel时,需要考虑Excel版本和数据量的问题。

JavaPOI导出Excel有三种形式:

ef3d6a992ed17b09a7aad768b5eafbdb.png

(1) 第一种HSSFWorkbook

POI导出Excel最常用的方式,局限是导出的行数最多为65535行,超出65536条后系统就会报错,此方式因为行数不足七万行所以一般不会发生内存不足的情况。

(2)第二种XSSFWorkbook

这种形式突破了HSSFWorkbook的65535行局限,对应excel2007(1048576行,16384列)扩展名为.xlsx,最多可以导出104万行,会有OOM内存溢出,原因是你所创建的book sheet row cell等此时是存在内存的并没有持久化。

(3)第三种SXSSFWorkbook

从POI3.8版本开始,提供了一种基于XSSF的低内存占用的SXSSF方式。对于大型excel文件的创建,一个关键问题就是,要确保不会内存溢出。对于大型excel的创建且不会内存溢出的,就只有SXSSFWorkbook了。它的原理很简单,用硬盘空间换内存(就像hash map用空间换时间一样)。

当数据量超出65536条后,在使用HSSFWorkbook或XSSFWorkbook,程序会报OutOfMemoryError:Javaheap space;内存溢出错误。这时应该用SXSSFworkbook。

excel2003和excel2007对比:

fb158b328e84c1bd607ec127516c1735.png

大批量读写数据:

b7fc7da4618b1667acf9ae4f0dfe54f9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值