Ta reda på vilken version av Excel som är installerad i .NET Framework

Datum för skapande av sida :

Om du vill hämta den installerade versionen av Excel använder du metoden Type.GetTypeFromProgID för att hämta typen av Excel.Application och generera en instans med metodenActivator.CreateInstance. Att inte generera en instans av Excel.Application direkt är att undvika att vara versionsberoende av direkt lye. På så sätt kommer du att kunna se den senaste versionen.

Du kan sedan referera till egenskapen Version från den genererade programinstansen för att hämta versionen. Den version som hämtas är den version som Excel har internt. Excel 2010 är till exempel 14.0 och Excel 2013 är 15.0.

Om du vill använda dessa klasser måste du också konfigurera System.Reflection och System.Runtime.InteropServices i använda.

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

Andra platser har liknande beskrivningar, men vissa platser släpper inte program med Marshal.ReleaseComObject. Om du glömmer detta kommer Excel-processen att finnas kvar, så se till att du släpper in den till.