java确认excel是03版本还是07版本

//判断excel版本不能通过文件后缀名来区分,如果将.xlsx文件直接改名是.xls,java后台读取文件时是根据流的信息头来判断版本的不是后缀名
//当excel是2003时
//is是文件的InputStream
boolean isExcel2003 = true;
if(!is.markSupported()) {
    is = new PushbackInputStream(is, 8);
}
if(POIFSFileSystem.hasPOIFSHeader(is)) {
    isExcel2003 = true;
    System.out.println("2003及以下");
}
if(POIXMLDocument.hasOOXMLHeader(is)) {
    isExcel2003 = false;
    System.out.println("2007及以上");
}
if (isExcel2003) {
    wb = new HSSFWorkbook(is);
} else {
    //当excel是2007时
    wb = new XSSFWorkbook(is);
}

你可能感兴趣的:(poi)