poi 解析excel 03與07不相容問題

2021-06-27 00:38:47 字數 662 閱讀 1547

剛開始使用new hssfworkbook(new fileinputstream(excelfile))來讀取workbook,對excel2003以前(包括2003)的版本沒有問題,但讀取excel2007時發生如下異常:

該錯誤意思是說,檔案中的資料是用office2007+xml儲存的,而現在卻呼叫ole2 office文件處理,應該使用poi不同的部分來處理這些資料,比如使用xssf來代替hssf。

於是按提示使用xssf代替hssf,用new xssfworkbook(excelfile)來讀取workbook,對excel2007沒有問題了,可是在讀取excel2003以前(包括2003)的版本時卻發生了如下新異常:

org.apache.poi.openxml4j.exceptions.invalidoperationexception: can't open the specified file: '*.xls'

該錯誤是說,操作無效,不能開啟指定的xls檔案。

這是初步的想法,但這種做法比較麻煩,看了下api,發現xssf和hssf雖然在不同的包裡,但卻引用了同一介面workbook,於是想到了這樣的讀取方法:

workbook book = null;

try catch (exception ex)

在各版本的excel中測試,沒有發生異常,問題解決。

poi解決excel 03 與 07不相容的問題

另外提供其他的解決方案 建立相關的檔案流物件 in new fileinputstream excelfile 宣告相關的工作薄物件 workbook wb null 宣告相關的excel抽取物件 excelextractor extractor null string filename excel...

POI操作EXCEL03前後版本不相容問題解決

開發程式遇到讀取excel時,03前後的版本不相容,如下 workbook sheet row cell等為介面 hssfworkbook hssfsheet hssfrow hssfcell為97 2003版本對應的處理實現類 xssfworkbook xssfsheet xssfrow xssf...

使用POI解析Excel

最近在寫專案,涉及到批量新增學生資訊,通過網上查了眾多資料,終於通過上傳乙個excel檔案的方式加以解決,現特此記錄下來,以備以後檢視。解析的核心 suppresswarnings static access public static listreadxls inputstream inputst...