Cari versi Excel mana yang dipasang dalam rangka kerja .NET

Tarikh penciptaan halaman :

Untuk mendapatkan versi Excel yang telah dipasang, gunakan kaedah jenis. GetTypeFromProgID untuk mendapatkan jenis Excel. permohonan dan menjana contoh denganpakaian. CreateInstance kaedah. Tidak menjana contoh Excel. permohonan secara langsung adalah untuk mengelakkan versi bergantung kepada secara langsung Lye. Dengan cara ini, anda akan dapat melihat versi terkini.

Anda kemudiannya boleh merujuk sifat versi daripada contoh aplikasi yang dijana untuk mendapatkan versi. Versi diambil adalah versi yang Excel mempunyai dalaman. Sebagai contoh, Excel 2010 adalah 14.0, dan Excel 2013 adalah 15.0.

Juga, untuk menggunakan kelas ini, anda mesti mengkonfigurasikan sistem. refleksi dan sistem. Runtime. Perkhidmatan dalam menggunakan.

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

Tapak lain mempunyai perihalan yang sama, tetapi sesetengah tapak tidak melepaskan aplikasi dengan fil. objek Releasecom. Jika anda terlupa ini, proses Excel akan kekal, jadi pastikan anda melepaskan ia pada akhirnya.