zoukankan      html  css  js  c++  java
  • POI判断excel文件版本

    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及以上");
            }
        }
  • 相关阅读:
    暂存。2
    暂存。
    dom兼容性问题3 元素操作
    一个查看Access数据库密码的工具
    解除IIS配置节锁定
    解决cef中title不现实tooltip的问题
    创建.symlnk文件
    查询orcale运行的SQL语句记录
    跨域http头
    C#抓取天气数据
  • 原文地址:https://www.cnblogs.com/ixixi/p/12180376.html
Copyright © 2011-2022 走看看