Как выбрать версию Excel для открытия с помощью VB.NET? - PullRequest
2 голосов
/ 30 июля 2011

У меня есть несколько листов Excel, с которыми я хотел бы работать с различными версиями Excel с использованием VB.NET

По сути, я хочу выбрать, в какой версии Excel я открою определенный лист с помощью VB.NET.Есть ли способ узнать, какая версия Excel установлена ​​на машине и сколько версий с VB.NET?И как мне выбрать, какую версию Excel я открою?

Я бы хотел узнать это через программирование, я знаю, что это можно сделать, если взглянуть на ключи реестра на машине.Хотя мне нужно создать программное обеспечение, которое запрашивает у пользователя версию Excel, которую он хочет открыть

1 Ответ

6 голосов
/ 04 августа 2011

Следующий фрагмент кода получает список всех установленных на компьютере копий 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)

Несколько более полное объяснение , как определить установленные версии Excel и их расположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...