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

我有几个Excel表,我想用不同的Excel版本使用VB.NET

基本上,我想select使用VB.NET打开某个工作表的哪个Excel版本。 有什么办法可以知道在机器上安装了哪个Excel版本,以及VB.NET有多less个版本? 而我该如何select将要打开的Excel版本?

我想通过编程知道这一点,我知道如果你看一下机器中的registry项,就可以做到这一点。 虽然,我需要的是创build一个软件,要求用户input他想要打开的Excel版本

下面的代码片段获取了计算机上Excel的所有已安装副本的列表(这已经在运行Excel 2003和2007的Windows XP计算机上进行了尝试和testing)。

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 

在variablesrtn ,有一个版本(关键字)和安装Excel的目录(值)的字典。 正如你可以在我的代码末尾的MessageBox位中看到的那样,你需要在它的末尾添加“Excel.exe”。

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

虽然我确信你可以find用Excel打开Excel电子表格的命令行,但是我想我会把它包括在内以便完整;

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

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

有关如何识别已安装的Excel版本及其位置的更全面的说明。