如何选择使用VB.NET打开哪个Excel版本?

时间:2011-07-30 08:30:49

标签: .net vb.net excel registry

我有几个excel表,我想使用VB.NET

使用不同的Excel版本

基本上,我想选择使用VB.NET打开某些工作表的Excel版本。有没有办法知道机器中安装了哪个Excel版本以及VB.NET有多少个版本?我如何选择打开哪个Excel版本?

我想通过编程知道它,我知道如果你看一下机器中的注册表键就可以做到这一点。虽然,我需要的是创建一个软件,要求用户提供他想要打开的Excel版本

1 个答案:

答案 0 :(得分:6)

以下代码段获取计算机上所有已安装Excel副本的列表(已在Windows XP计算机上尝试并测试过,同时运行Excel 2003和2007)。

Dim reg As RegistryKey
Dim subKey As RegistryKey
Dim rtn As New Dictionary(Of String, String)

reg = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Office")
If reg IsNot Nothing Then
    For Each subKeyName As String In reg.GetSubKeyNames
        subKey = reg.OpenSubKey(subKeyName)
        If subKey IsNot Nothing Then
            If subKey.GetSubKeyNames().Contains("Excel") Then
                subKey = subKey.OpenSubKey("Excel\InstallRoot")
                rtn.Add(subKeyName, subKey.GetValue("Path").ToString)
            End If
        End If
    Next
End If
For Each kvp In rtn
    MessageBox.Show(String.Format("Version: {0} at '{1}Excel.exe'", kvp.Key, kvp.Value))
Next

在变量rtn中,您有一个版本字典(密钥)和安装Excel的目录(值)。正如您在代码末尾的MessageBox位中所看到的,您需要在其末尾添加“Excel.exe”。

现在您已经安装了Excel及其版本的副本的位置,您可以创建一个列出它们的表单,以允许用户选择他们希望使用的版本。

虽然我确信您可以找到使用Excel打开Excel电子表格的命令行,但我认为我会将其包含在此处以便完整;

excel.exe "c:\My Folder\book1.xlsx"

http://office.microsoft.com/en-us/excel-help/command-line-switches-for-excel-HA010158030.aspx

how to identify installed Excel versions and their location稍微更全面的解释。