Μάθετε ποια έκδοση του Excel είναι εγκατεστημένη στο .NET Framework

Ημερομηνία δημιουργίας σελίδας :

Για να λάβετε την εγκατεστημένη έκδοση του Excel, χρησιμοποιήστε τη μέθοδο Type.GetTypeFromProgID για να λάβετε τον τύπο του Excel.Application και να δημιουργήσετε μια παρουσία με τη μέθοδοActivator.CreateInstance. Η μη δημιουργία μιας παρουσίας του Excel.Application απευθείας είναι να αποφευχθεί η έκδοση που εξαρτάται από την άμεση αναίσθηση. Με αυτόν τον τρόπο, θα μπορείτε να δείτε την τελευταία έκδοση.

Στη συνέχεια, μπορείτε να αναφέρετε την ιδιότητα Version από την παρουσία της εφαρμογής που δημιουργήθηκε για να λάβετε την έκδοση. Η έκδοση που ανακτήθηκε είναι η έκδοση που έχει το Excel εσωτερικά. Για παράδειγμα, το Excel 2010 είναι 14.0 και το Excel 2013 είναι 15.0.

Επίσης, για να χρησιμοποιήσετε αυτές τις, πρέπει να ρυθμίσετε τις παραμέτρους 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. Εάν το ξεχάσετε αυτό, η διαδικασία του Excel θα παραμείνει, οπότε φροντίστε να την αφήσετε τελικά.