zoukankan      html  css  js  c++  java
  • poi解析excel出现格式不正确

    后缀为xlsx的excel做系统导入时出现bug:

    Strict OOXML isn't currently supported, please see bug #57699

    为了同时兼容03、07及更高版本的excel,修改了excel的版本,同时导入的时候发现出现错误,查阅资料发现后缀是xlsx还会分两个格式ole2和ooxml两种。

    百度后的解决办法有

    public static Workbook create(InputStream in) throws IOException,InvalidFormatException {
    if (!in.markSupported()) { //hasPOIFSHeader和hasOOXMLHeader的要求,inputStream must support mark and reset, or be a PushbackInputStream
    in = new PushbackInputStream(in, 8);
    }
    if (POIFSFileSystem.hasPOIFSHeader(in)) { //后缀是xlsx但是是ole2格式的或更低版本
    return new HSSFWorkbook(in);
    }
    if (POIXMLDocument.hasOOXMLHeader(in)) { //后缀是xlsx但是是OOXML格式的或更高版本
    return new XSSFWorkbook(OPCPackage.open(in));
    }
    throw new IllegalArgumentException("你的excel版本目前poi解析不了");
    }

    但是本人试过,并没有解决,(poi 3.17)。

    后把excel的格式修改了就好了。。。

    第一种是好用的,第二种是之前怎么试都没好使的。具体原因。。。没查到。。。希望以后更新。。。

  • 相关阅读:
    Hibernate学习笔记_关系映射
    Hibernate学习笔记_核心幵发接口及三种对象状态
    Hibernate学习笔记_联合主键
    Hibernate学习笔记_ID生成策略
    API的控制器
    MVC跨域API
    WindowsForms 调用API
    触发器
    视图
    分页的存储过程的用法
  • 原文地址:https://www.cnblogs.com/qiujiababy/p/9367118.html
Copyright © 2011-2022 走看看