我有幾個excel表,我想用不同的Excel版本使用VB.NET如何選擇使用VB.NET打開哪個Excel版本?
基本上,我想選擇使用VB.NET打開某些工作表的Excel版本。有什麼方法可以知道機器上安裝了哪個Excel版本,以及VB.NET有多少版本?我該如何選擇我打開它的Excel版本?
我想通過編程知道它,我知道如果您查看機器中的註冊表項,就可以完成此操作。雖然,我需要的是創建一個軟件,要求用戶輸入他想要打開的Excel版本
我有幾個excel表,我想用不同的Excel版本使用VB.NET如何選擇使用VB.NET打開哪個Excel版本?
基本上,我想選擇使用VB.NET打開某些工作表的Excel版本。有什麼方法可以知道機器上安裝了哪個Excel版本,以及VB.NET有多少版本?我該如何選擇我打開它的Excel版本?
我想通過編程知道它,我知道如果您查看機器中的註冊表項,就可以完成此操作。雖然,我需要的是創建一個軟件,要求用戶輸入他想要打開的Excel版本
以下代碼片段獲取了計算機上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完整說明。
Excelent!還有一個問題,如果我需要通過VB.NET來控制Workbook。我的意思是,除了打開它,我需要運行宏,排除行等通過VB.NET –
我的建議是打開一個新的問題,因爲它可能會需要更多的信息和響應會比一個評論會允許(我猜想,我不知道該怎麼做我的頭頂)。 – Satal
[檢測安裝的Excel版本(和服務包)](http://stackoverflow.com/questions/858966/detecting-installed-excel-version-and-service-packs/859462#859462) –
這不是我的我問 –
我認爲這將回答「有什麼方法可以知道機器上安裝了哪個Excel版本?」。 –