Ugotovite, katera različica Excela je nameščena v ogrodju .NET Framework

Datum ustvarjanja strani :

Če želite dobiti nameščeno različico Excela, uporabite metodo Type. GetTypeFromProgID , da dobite vrsto Excela. Application in ustvarite primerek sactivator. CreateInstance metodo. Ne ustvarja primerka Excela. Application neposredno je, da ne bo različica odvisna od neposrednega LYE. Na ta način boste lahko videli najnovejšo različico.

Nato lahko za različico različice iz generirane primerka aplikacije sklicite lastnost Version. Pridobljena različica je različica, ki jo ima Excel interno. Na primer, Excel 2010 je 14,0, in Excel 2013 je 15,0.

Če želite uporabiti te razrede, morate konfigurirati System. razmislek in System. Runtime. InteropServices v uporabi.

/// <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);
    }
  }
}

Drugi položaj življati sličen oris, šele neki položaj nikar ne izpust uporaba s maršal. ReleaseComObject. Če pozabite na to, bo Excel proces ostal, zato poskrbite, da ga spustite na koncu.