【问题标题】:Identifying Excel version programmatically以编程方式识别 Excel 版本
【发布时间】:2011-08-02 12:53:31
【问题描述】:

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

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

我希望我的应用程序能够识别本地计算机上安装的 Excel 版本,并使用不同的方法生成报告(新版本:通过生成 XML 文件。旧版本:通过使用 Excel 自动化)。

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

【问题讨论】:

    标签: .net vb.net excel


    【解决方案1】:

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

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

    【讨论】:

    • 这是正确答案。使用注册表是不可靠的。
    【解决方案2】:

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

    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
    

    编号/版本对应

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

    【讨论】:

    • 这是一个好的开始!在这台机器上我有 Visio 2003 和 Excel 2002。我看到 HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel 存在,但 HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel 不存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    相关资源
    最近更新 更多