POI操作Excel的三种Workbook的发展和区别

POI的一些使用方法:
  创建流程:(上级为下级的载体)
    1、创建Workbook(工作薄);
    2、创建Sheet(表单,可以创建多个);
    3、创建Row(行);
    4、创建Cell(单元格)


接下来分别说下工作簿的常用三种形式的区别,他们分别是 1.HSSFWorkbook 2.XSSFWorkbook 3.SXSSFWorkbook
  第一种:HSSFWorkbook
    针对是 EXCEL2003 版本,扩展名为 .xls;所以此种的局限就是导出的行数至多为 65535 行,
    此种因为行数不足七万行所以一般不会发生内存不足的情况(OOM);

  第二种:XSSFWorkbook
    这种形式的出现是由于第一种HSSFWorkbook的局限性而产生的,因为其所导出的行数比较少,所以XSSFWookbook应运而生,其对应的是EXCEL2007+(1048576行,16384列)扩展名.xlsx,最多可以导出104万行,不过这样就伴随着一个问题---OOM 内存溢出,原因是你所创建的book、sheet、row、cell等此时是存在内存的并没有持久化,那么随着数据量增大,内存的需求量也就增大,那么很大可能就是要OOM了,那么怎么解决呢?

  第三种:SXSSFWorkbook  poi.jar 3.8+
    第二种遇到的问题该如何解决呢?因为数据量过大导致内存吃不消那么可以让内存到量持久化吗? 答案是肯定的,此种的情况就是设置最大内存条数,比如,设置最大内存量为5000 rows  --new SXSSFWookbook(5000),此时当行数达到5000时,把内存持久化写到文件中,以此逐步写入 避免OOM,那么这样就完美解决了大数据下导出的问题;

  详情参考:https://blog.csdn.net/qq_29631809/article/details/72785338;

猜你喜欢

转载自www.cnblogs.com/Big-Boss/p/10002280.html
今日推荐