检测已安装的Excel版本(和Service Pack)

时间:2009-05-13 16:28:32

标签: vb.net excel

我需要能够从我正在开发的一些.NET代码中检测我在我的机器上安装的Excel版本。我目前正在使用 Application.Version ,但它没有提供有关Service Pack的信息。

我最好避开这样的事情: http://www.mvps.org/access/api/api0065.htm

欢迎使用托管代码!

4 个答案:

答案 0 :(得分:6)

Public Shared Function GetExcelVersion() As Integer
    Dim excel As Object = Nothing
    Dim ver As Integer = 0
    Dim build As Integer
    Try
        excel = CreateObject("Excel.Application")
        ver = excel.Version
        build = excel.Build
    Catch ex As Exception
        'Continue to finally sttmt
    Finally
        Try
            Marshal.ReleaseComObject(excel)
        Catch
        End Try
        GC.Collect()
    End Try
    Return ver
End Function

如果找不到excel,则返回0。

答案 1 :(得分:2)

不幸的是,这种方法是唯一可靠的方法。甚至Microsoft suggests using a similar technique(这是手动检查,但概念相同)。

如果你想在托管代码中执行此操作,我建议只需从链接中移植代码,并在发布新的Service Pack时创建一个易于扩展的类。

答案 2 :(得分:2)

您可以在注册表中检查应用程序路径以获取exe的路径,然后获取其版本: 见http://www.codeproject.com/KB/office/getting_office_version.aspx

答案 3 :(得分:0)

虽然不健全,但这种方法是我所知道的唯一方法。

请注意,您无需检查完全匹配。您可以使用各个值的比较来查看您拥有的版本是SP1还是更新版本。你知道如果版本号大于或等于“11.0.6355.0”则更新(你需要实现比较)