Find ud af, hvilken version af Excel der er installeret i .NET Framework

Dato for oprettelse af side :

Hvis du vil hente den installerede version af Excel, skal du bruge metoden Type.GetTypeFromProgID til at hente typen af Excel.Application og generere en forekomst med metodenActivator.CreateInstance. Ikke generere en forekomst af Excel.Application direkte er at undgå at blive version-afhængige af direkte lye. På denne måde vil du kunne se den nyeste version.

Du kan derefter referere til egenskaben Version fra den genererede programforekomst for at hente versionen. Den hentede version er den version, som Excel har internt. Excel 2010 er f.eks.

Hvis du vil bruge disse klasser, skal du også konfigurere System.Reflection og System.Runtime.InteropServices i brugen.

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

Andre websteder har lignende beskrivelser, men nogle websteder frigiver ikke programmer med Marshal.ReleaseComObject. Hvis du glemmer dette, forbliver Excel-processen, så sørg for at slippe den endelig.