Individuare la versione di Excel installata in .NET Framework

Data di creazione della pagina :

Per ottenere la versione installata di Excel, utilizzare il metodo Type.GetTypeFromProgID per ottenere il tipo di Excel.Application e generare un'istanza con il metodoActivator.CreateInstance. La non generazione diretta di un'istanza di Excel.Application consiste nell'evitare di essere dipendenti dalla versione tramite liscivia diretta. In questo modo, sarai in grado di vedere l'ultima versione.

È quindi possibile fare riferimento alla proprietà Version dall'istanza dell'applicazione generata per ottenere la versione. La versione recuperata è la versione interna di Excel.The version retrieved is the version that Excel has internally. Ad esempio, Excel 2010 è 14.0 e Excel 2013 è 15.0.

Inoltre, per utilizzare queste classi, è necessario configurare System.Reflection e System.Runtime.InteropServices in uso.

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

Altri siti hanno descrizioni simili, ma alcuni siti non rilasciano applicazioni con Marshal.ReleaseComObject. Se si dimentica questo, il processo di Excel rimarrà, quindi assicuratevi di rilasciarlo in finalmente.