栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

poi判断.xls和.xlsx格式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poi判断.xls和.xlsx格式

直接判断后缀名不严谨
1 通过POIFSFileSystem.hasPOIFSHeader(InputStream is);判断Excel 2003及以下

2通过POIXMLdocument.hasOOXMLHeader(InputStream is);判断Excel 2007及以上

这种判断,即使将excel文件后缀变换,也会正确识别,比如将.xlsx人为换成xls导入,还是能识别出为2007以上版本。

注意:传入的InputStream用BufferedInputStream装饰一层,如果直接传入InputStream,如果流不支持mark/reset机制,会抛出java.io.IOException: mark/reset not supported

public static void main(String[] args)throws Exception {
        File file = new File("D:\docs\work\需求排期安排.xlsx");
        InputStream is = new FileInputStream(file);
        //这里用BufferedInputStream再包装一层,可解决:mark/reset not supported问题
        BufferedInputStream bis = new BufferedInputStream(is);
        if(POIFSFileSystem.hasPOIFSHeader(bis)) {
            System.out.println("2003及以下");
        }
        if(POIXMLdocument.hasOOXMLHeader(bis)) {
            System.out.println("2007及以上");
        }
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/683908.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号