【发布时间】:2011-08-02 12:53:31
【问题描述】:
我的 VB.NET (3.5) 应用程序生成 Excel 报告。
新版本的 Excel 支持 Office Open XML 文件格式,而旧版本不支持。
我希望我的应用程序能够识别本地计算机上安装的 Excel 版本,并使用不同的方法生成报告(新版本:通过生成 XML 文件。旧版本:通过使用 Excel 自动化)。
如何识别本地机器上安装的 Excel 版本?
【问题讨论】:
我的 VB.NET (3.5) 应用程序生成 Excel 报告。
新版本的 Excel 支持 Office Open XML 文件格式,而旧版本不支持。
我希望我的应用程序能够识别本地计算机上安装的 Excel 版本,并使用不同的方法生成报告(新版本:通过生成 XML 文件。旧版本:通过使用 Excel 自动化)。
如何识别本地机器上安装的 Excel 版本?
【问题讨论】:
您可以打开一个 Excel 实例并检查版本:
Dim appExcel As Object
appExcel = CreateObject("Excel.Application")
With appExcel
Debug.Print(Val(.application.version))
.quit()
appExcel = Nothing
End With
【讨论】:
您可以查看以下注册表项之一:
HKEY_USERS\.DEFAULT\Software\Microsoft\Office\11.0\Excel
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel
您应该寻找其中包含“Excel”的密钥的存在,因为您可以安装 office 2003 和 visio 2007,因此两个密钥都会存在,但只有一个会有 Excel 子密钥:
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0
编号/版本对应
【讨论】: