Узнайте, какая версия Excel установлена в рамочном варианте .NET

Дата создания страницы :

Чтобы получить установленную версию Excel, используйте метод Type.GetTypeFromProgID, чтобы получить тип Excel.Application и создать экземпляр с помощью методаActivator.CreateInstance. Не генерации экземпляра Excel.Application напрямую, чтобы избежать версии зависит от прямого лик. Таким образом, вы сможете увидеть последнюю версию.

Затем можно ссылаться на свойство версии из сгенерированного экземпляра приложения, чтобы получить версию. Полученная версия — это версия, которая имеет Excel внутренне. Например, Excel 2010 - 14,0, а Excel 2013 - 15,0.

Кроме того, чтобы использовать эти классы, необходимо настроить System.Reflection и System.Runtime.InteropServices в использовании.

/// <summary>
/// インストールされている Excel のバージョンを取得します。
/// </summary>
/// <returns>インストールされている Excel のバージョン。</returns>
public static decimal GetInstallExcelVersion()
{
  // Excelアプリケーションに接続
  var type = Type.GetTypeFromProgID("Excel.Application");
  object application = null;
  try
  {
    application = Activator.CreateInstance(type);

    if (application == null)
    {
      // 未インストールの場合
      return 0;
    }

    // バージョンを取得
    var ver =
        application.GetType().InvokeMember(
        "Version", BindingFlags.GetProperty, null, application, null);

    decimal version;
    if (!decimal.TryParse(ver.ToString(), out version))
    {
      return 0;
    }
    return version;
  }
  finally
  {
    if (application != null)
    {
      Marshal.ReleaseComObject(application);
    }
  }
}

Другие сайты имеют аналогичные описания, но некоторые сайты не выпускают приложения с Marshal.ReleaseComObject. Если вы забудете об этом, процесс Excel останется, поэтому убедитесь, что вы отпустите его, наконец.