2011-07-30 38 views
2

我有幾個excel表,我想用不同的Excel版本使用VB.NET如何選擇使用VB.NET打開哪個Excel版本?

基本上,我想選擇使用VB.NET打開某些工作表的Excel版本。有什麼方法可以知道機器上安裝了哪個Excel版本,以及VB.NET有多少版本?我該如何選擇我打開它的Excel版本?

我想通過編程知道它,我知道如果您查看機器中的註冊表項,就可以完成此操作。雖然,我需要的是創建一個軟件,要求用戶輸入他想要打開的Excel版本

+0

[檢測安裝的Excel版本(和服務包)](http://stackoverflow.com/questions/858966/detecting-installed-excel-version-and-service-packs/859462#859462) –

+0

這不是我的我問 –

+0

我認爲這將回答「有什麼方法可以知道機器上安裝了哪個Excel版本?」。 –

回答

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完整說明。

+0

Excelent!還有一個問題,如果我需要通過VB.NET來控制Workbook。我的意思是,除了打開它,我需要運行宏,排除行等通過VB.NET –

+0

我的建議是打開一個新的問題,因爲它可能會需要更多的信息和響應會比一個評論會允許(我猜想,我不知道該怎麼做我的頭頂)。 – Satal

相關問題