Идентификация версии Excel программно - PullRequest
4 голосов
/ 10 апреля 2011

Приложение VB.NET (3.5) создает отчеты в формате Excel.

Более новые версии Excel поддерживают формат файла Office Open XML , в то время как более старые версии не поддерживают.

Я бы хотел, чтобы мое приложение идентифицировало, какая версия Excel установлена ​​на локальном компьютере, и использовал другой метод для создания отчета (более новые версии: путем создания файла XML. Старые версии: с помощью автоматизации Excel).

Как определить версию Excel, установленную на локальном компьютере?

Ответы [ 2 ]

4 голосов
/ 10 апреля 2011

Вы можете открыть экземпляр Excel и проверить версию:

Dim appExcel As Object
appExcel = CreateObject("Excel.Application")
With appExcel
    Debug.Print(Val(.application.version))
    .quit()
    appExcel = Nothing
End With
3 голосов
/ 10 апреля 2011

Вы можете взглянуть на один из следующих ключей реестра:

HKEY_USERS\.DEFAULT\Software\Microsoft\Office\11.0\Excel 
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel

Вам следует искать наличие ключа с «Excel», поскольку у вас может быть установлен Office 2003 и Visio 2007 в стороне, так что оба ключа будут существовать, но только один будет иметь подраздел Excel: *

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0

Соответствие номера / версии

  • Офис 9: Офис 2000
  • Office 10: Office XP (первая версия, поддерживающая таблицы формата XML)
  • Office 11: Office 2003
  • Office 12: Office 2007
  • Office 14: Office 2010 (забавный факт, 13 было пропущено)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...