POI操作Excel文件,通過文件流判斷Excel的版本

在某種情況下,我們需要讀取的Excel文件沒有後綴名,或後綴名是類似.tmp這樣的,這樣,我們通過後綴名xls和xlsx來判斷Excel的版本就不行了。

這種情況下,我們可以直接使用poi提供的方法來創建。

Workbook wb = WorkbookFactory.create(new FileInputStream("d://temp.tmp"));

WorkbookFactory.create方法中會通過Excel的文件頭去判斷Excel的版本,生成對應的Workbook(HSSFWorkbook或XSSfWorkbook)。


如果你想自己判斷,可以將create中的方法拿出來使用:

if (POIFSFileSystem.hasPOIFSHeader(inp)) {
            return new HSSFWorkbook(inp);
        }
        if (POIXMLDocument.hasOOXMLHeader(inp)) {
            return new XSSFWorkbook(OPCPackage.open(inp));
        }


發佈了47 篇原創文章 · 獲贊 10 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章