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

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

 

posted on 2018-07-25 17:14  qiujiababy  阅读(3304)  评论(0编辑  收藏  举报

导航