Descubra qual versão do Excel está instalada no Framework .NET

Data de criação de página :

Para obter a versão instalada do Excel, use o método Type.GetTypeFromProgID para obter o tipo de Excel.Application e gerar uma instância com o métodoActivator.CreateInstance. Não gerar uma instância do Excel.Application é evitar ser dependente de versão diretamente. Desta forma, você poderá ver a versão mais recente.

Em seguida, você pode fazer referência à propriedade Versão da instância do aplicativo gerado para obter a versão. A versão recuperada é a versão que o Excel tem internamente. Por exemplo, o Excel 2010 é 14.0, e o Excel 2013 é 15.0.

Além disso, para usar essas classes, você deve configurar System.Reflection e System.Runtime.InteropServices no 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);
    }
  }
}

Outros sites têm descrições semelhantes, mas alguns sites não liberam aplicativos com Marshal.ReleaseComObject. Se você esquecer isso, o processo Excel permanecerá, então certifique-se de liberá-lo finalmente.