Ontdek welke versie van Excel is geïnstalleerd in het .NET Framework

Aanmaakdatum van pagina :

Als u de geïnstalleerde versie van Excel wilt ophalen, gebruikt u de methode Type.GetTypeFromProgID om het type Excel.Application op te halen en een instantie te genereren met de methodeActivator.CreateInstance. Het niet rechtstreeks genereren van een exemplaar van Excel.Application is om te voorkomen dat u afhankelijk bent van versies door direct lye. Op deze manier u de nieuwste versie zien.

U vervolgens verwijzen naar de eigenschap Version vanuit de gegenereerde toepassingsinstantie om de versie te krijgen. De opgehaalde versie is de versie die Excel intern heeft. Excel 2010 is bijvoorbeeld 14,0 en Excel 2013 is 15,0.

Om deze klassen te kunnen gebruiken, moet u ook System.Reflection en System.Runtime.InteropServices configureren in gebruik.

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

Andere sites hebben vergelijkbare beschrijvingen, maar sommige sites geven geen toepassingen vrij met Marshal.ReleaseComObject. Als u dit vergeet, blijft het Excel-proces bestaan, dus zorg ervoor dat u het uiteindelijk vrijlaat.