Разберете коя версия на Excel е инсталирана в .NET Framework

Дата на създаване на страница :

За да получите инсталираната версия на 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 ще остане, така че се уверете, че сте го пуснали накрая.