我的VB.NET(3.5)應用程序生成Excel報告。通過編程識別Excel版本
較新版本的Excel支持Office Open XML文件格式,而舊版本則不支持。
我希望我的應用程序能夠識別在本地計算機上安裝了哪個版本的Excel,並使用不同的方法生成報告(較新版本:通過生成XML文件。舊版本:利用Excel自動化) 。
如何識別安裝在本地機器上的Excel版本?
我的VB.NET(3.5)應用程序生成Excel報告。通過編程識別Excel版本
較新版本的Excel支持Office Open XML文件格式,而舊版本則不支持。
我希望我的應用程序能夠識別在本地計算機上安裝了哪個版本的Excel,並使用不同的方法生成報告(較新版本:通過生成XML文件。舊版本:利用Excel自動化) 。
如何識別安裝在本地機器上的Excel版本?
你可以看看下面的註冊表項之一:它
HKEY_USERS\.DEFAULT\Software\Microsoft\Office\11.0\Excel
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel
你應該尋找鑰匙的存在,以「創先爭優」,你可以安裝的Office 2003,並Visio 2007的一邊,所以這兩個鍵會存在,但只有一個將有一個Excel子項:
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0
數/版本對應關係
你可以打開一個Excel的實例,並檢查版本:
Dim appExcel As Object
appExcel = CreateObject("Excel.Application")
With appExcel
Debug.Print(Val(.application.version))
.quit()
appExcel = Nothing
End With
這是正確的答案。使用註冊表是不可靠的。 – smirkingman 2014-06-04 09:24:41
這是一個良好的開端!在這臺機器上,我有Visio 2003和Excel 2002.我看到HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 10.0 \ Excel存在,但HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 11.0 \ Excel沒有。 – 2011-04-10 15:40:56