我需要確定在Windows PC上安裝了哪個版本的Microsoft Excel。我正在使用Apache POI,但無法找到一個簡單的方法來做到這一點。確定使用Apache POI安裝的Microsoft Excel版本?
任何人都知道Apache POI是否具有內置功能來執行此操作?任何想法如何使用Java代碼做到這一點?
我需要確定在Windows PC上安裝了哪個版本的Microsoft Excel。我正在使用Apache POI,但無法找到一個簡單的方法來做到這一點。確定使用Apache POI安裝的Microsoft Excel版本?
任何人都知道Apache POI是否具有內置功能來執行此操作?任何想法如何使用Java代碼做到這一點?
好吧,剛剛發生在我身上的是舊的Microsoft Excel版本的文件擴展名爲.xls,而新的版本有.xlsx。
我只能得到該文件的參考並獲得文件擴展名......這很容易。
如果有人有更好的解決方案,請讓我知道。
我真的,真的不認爲POI具有這種功能,因爲它明確寫入跨平臺工作。它只處理文檔文件。
如果我面對這個任務,我會深入研究註冊表(通過Windows API)關聯.XLS
文件類型。那樣會犯錯,應該給你一個鏈接到最近安裝完畢的Excel。不可靠,因爲
但考慮到(通常情況下)適用的可執行文件的提示,然後你可以選擇要檢查的Excel中.EXE
文件頭或者是一些在周圍文件,以確定Excel的版本。
POI提供了一種在不使用任何Excel API的情況下編寫Excel文檔的機制。我懷疑它有檢測安裝版本的機制,因爲它不依賴於安裝的Excel版本。
根據類似於在this question about detecting the Excel version in .NET描述的一個模式,你可以使用JACOB檢測,像這樣安裝的Excel版本:
現在很流暢,+1!作爲一個Windows的仇敵,我從來沒有想過使用COM這種東西。 – 2010-04-29 15:07:51
祝賀1000 :) – 2010-04-29 17:47:34
@Carl Smotricz:謝謝! – ig0774 2010-04-30 00:15:38
你意識到這可能是舊版本的Excel中打開,閱讀並使用兼容包在此處修改.xlsx文檔:http://support.microsoft.com/kb/924074 – ig0774 2010-04-29 15:03:27