Sužinokite, kuri "Excel" versija įdiegta .NET Framework

Puslapio sukūrimo data :

Norėdami gauti įdiegtą "Excel" versiją, naudokite metodą Type.GetTypeFromProgID, kad gautumėte Excel.Application tipą ir sugeneruokite egzempliorių naudodami metodąActivator.CreateInstance. Ne generuoti Excel.Application egzemplioriaus tiesiogiai yra išvengti versijos priklauso nuo tiesioginio lye. Tokiu būdu galėsite pamatyti naujausią versiją.

Tada galite nurodyti ypatybę Versija iš sugeneruoto siausosios programos egzemplioriaus, kad gautumėte versiją. Gauta versija yra "Excel" vidinė versija. Pvz., Excel 2010 yra 14.0, ir Excel 2013 yra 15.0.

Be to, norėdami naudoti šias klases, turite sukonfigūruoti System.Reflection ir System.Runtime.InteropServices naudojant.

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

Kitos svetainės turi panašius aprašus, tačiau kai kurios svetainės neišleidžia programų su Marshal.ReleaseComObject. Jei pamiršite tai, "Excel" procesas išliks, todėl įsitikinkite, kad jį išleidote pagaliau.