.NET Framework와 함께 설치 되어 있는 Excel의 버전을 확인 하려면

페이지 생성 날짜 :

설치 된 Excel 버전을 가져오려면 Type.GetTypeFromProgID 메서드를 사용 하 여 Excel.Application 유형을 가져오고Activator.CreateInstance 메서드 인스턴스를 생성 합니다. 직접 Excel.Application 인스턴스를 생성 하지 않는 것은 직접 참조 하 여 버전에 의존 하는 것을 방지할 수 있습니다. 이 방법을 채택 하 여 최신 버전을 참조할 수 있습니다.

다음은 생성 된 application 인스턴스에서 Version 속성을 참조 하 여 버전을 검색할 수 있습니다. 검색 된 버전은 Excel 내부에 있는 버전입니다. 예를 들어 Excel 2010은 14.0, Excel 2013는 15.0입니다.

또한 이러한 클래스를 사용 하려면 using 「 System.Reflection "" System.Runtime.InteropServices 」의 설정이 필요 합니다.

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

다른 사이트 에서도 설명 되어 있는 곳이 있지만 일부 사이트에서는 Marshal.ReleaseComObject의 application의 발표 를 하지 않는 곳이 있습니다. 이것을 잊어버리면 Excel 프로세스가 남게 되어 버리기 때문에 finally에서 해제 하도록 합시다.