Découvrez quelle version d’Excel est installée dans le cadre .NET

Date de création de la page :

Pour obtenir la version installée d’Excel, utilisez la méthode Type.GetTypeFromProgID pour obtenir le type d’Application Excel.et générer une instance avec la méthodeActivator.CreateInstance. Ne pas générer une instance d’Excel.Application directement est d’éviter d’être la version dépendante par les lessive directes. De cette façon, vous serez en mesure de voir la dernière version.

Vous pouvez ensuite faire référence à la propriété Version à partir de l’instance d’application générée pour obtenir la version. La version récupérée est la version qu’Excel a en interne. Par exemple, Excel 2010 est 14.0, et Excel 2013 est 15.0.

En outre, pour utiliser ces classes, vous devez configurer System.Reflection et System.Runtime.InteropServices dans l’utilisation.

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

D’autres sites ont des descriptions similaires, mais certains sites ne publient pas d’applications avec Marshal.ReleaseComObject. Si vous oubliez cela, le processus Excel restera, alors assurez-vous de le libérer enfin.