zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    SMTP协议原始命令码和工作原理[转]
    VC++ SMTP协议电子邮件传送剖析
    C++编译模式(转)
    IE6下select标签覆盖div的完美解决办法
    星级评论插件
    CSS Reset CSS Framework
    if判断IE浏览器的类型
    通过Prototype属性添加Array删除重复数据方法
    Javascript性能优化
    我自己的Javascript 库,封装了一些常用函数
  • 原文地址:https://www.cnblogs.com/Big-Boss/p/10002280.html
Copyright © 2011-2022 走看看