我的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