簡體   English   中英

使用Apache POI確定已安裝的Microsoft Excel版本?

[英]Determine installed Microsoft Excel version using Apache POI?

我需要確定Windows PC上安裝了哪個版本的Microsoft Excel。 我正在使用Apache POI,但無法找到一種簡單的方法來做到這一點。

有人知道Apache POI是否具有內置功能嗎? 有什么想法如何使用Java代碼執行此操作?

POI提供了一種無需使用任何Excel API即可編寫Excel文檔的機制。 我懷疑它是否具有檢測安裝版本的機制,因為它不依賴於Excel的安裝版本。

按照類似於此問題中描述的有關在.NET中檢測Excel版本的模式進行操作 ,可以使用JACOB來檢測已安裝的Excel版本,如下所示:

ActiveXComponent xl = new ActiveXComponent("Excel.Application");
try {
    xl.getProperty("Version");
} finally {
    xl.invoke("Quit", new Variant[] {});
}

我真的,真的不認為POI具有此功能,因為它是為跨平台工作而明確編寫的。 它僅處理文檔文件。

如果我面臨此任務,我將通過Windows API深入研究.XLS文件類型的關聯的注冊表。 這樣,err應該會為您提供一個指向最新且完全安裝的Excel的鏈接。 不可靠,因為

  • 可能沒有安裝一個Excel;
  • 用戶可能已更改關聯; 要么
  • 關聯指向的Excel可能已損壞。

但是,如果提示(通常是)適用的可執行文件,則可以檢查Excel的.EXE文件標頭或周圍文件中的某些內容以確定Excel的版本。

好的,對我來說,舊的Microsoft Excel版本具有文件擴展名.xls,而新版本具有.xlsx。

我可以直接參考文件並獲取文件擴展名。

如果有人有更好的解決方案,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM