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的格式修改了就好了。。。

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

  • 相关阅读:
    模板方法模式
    策略模式
    享元模式
    组合模式
    桥接模式
    外观模式
    代理模式
    装饰者模式
    适配器模式
    类之间的关联关系和依赖关系
  • 原文地址:https://www.cnblogs.com/qiujiababy/p/9367118.html
Copyright © 2011-2022 走看看