以编程方式识别Excel版本

M.A*_*nin 5 .net vb.net excel

我的VB.NET(3.5)应用程序生成Excel报告。

较新版本的Excel支持Office Open XML文件格式,而较旧版本则不支持。

我希望我的应用程序确定本地计算机上安装了哪个版本的Excel,并使用另一种方法生成报告(较新版本:通过生成XML文件;较旧版本:通过利用Excel Automation)。

如何识别本地计算机上安装的Excel版本?

Dou*_*ncy 5

您可以打开一个Excel实例并检查版本:

Dim appExcel As Object
appExcel = CreateObject("Excel.Application")
With appExcel
    Debug.Print(Val(.application.version))
    .quit()
    appExcel = Nothing
End With
Run Code Online (Sandbox Code Playgroud)


mat*_*ieu 3

您可以查看以下注册表项之一:

HKEY_USERS\.DEFAULT\Software\Microsoft\Office\11.0\Excel 
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel
Run Code Online (Sandbox Code Playgroud)

您应该查找该密钥是否存在,其中包含“Excel”,因为您可以安装 Office 2003,并安装 visio 2007,因此两个密钥都将存在,但只有一个密钥具有 Excel 子密钥:

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0
Run Code Online (Sandbox Code Playgroud)

编号/版本对应关系

  • 办公室 9:办公室 2000
  • Office 10:Office XP(第一个支持XML格式工作表的版本)
  • 办公室 11:办公室 2003
  • 办公室 12:办公室 2007
  • Office 14:Office 2010(有趣的是,13 被跳过)