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

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

  • 相关阅读:
    Codeforces 812E Sagheer and Apple Tree
    bzoj 4765: 普通计算姬
    bzoj 4552: [Tjoi2016&Heoi2016]排序
    bzoj 1096: [ZJOI2007]仓库建设
    bzoj 1030: [JSOI2007]文本生成器
    bzoj 1095: [ZJOI2007]Hide 捉迷藏
    JS实现HashMap
    A4纸表格打印
    JAVA字符串格式化-String.format()的使用
    证书打印CSS知识点总结
  • 原文地址:https://www.cnblogs.com/qiujiababy/p/9367118.html
Copyright © 2020-2023  润新知