Skontrolujte internú verziu programu Excel nainštalovaného v rozhraní .NET
Prevádzkové prostredie
- Vizuálne štúdio
-
- Visual Studio 2022
- .SIEŤ
-
- .NET 6.0
- Windows
-
- Windows 11
- Vynikať
-
- Microsoft 365
Predpoklady
- Windows
-
- Jedna z verzií
- Vynikať
-
- Jedna z verzií
Informácie o interných verziách
Tentokrát môžete internú verziu programu Excel skontrolovať programovo, ale od 7. 5. 2023 sa interná verzia programu Excel 2016 a novšie nezmenila zo 16.0. V dôsledku toho už nie je možné identifikovať Excel 2016, 2019, 2021 a Microsoft 265 podľa ich interných verzií. Keďže sa však interná verzia nezmenila, výhodou je, že pokiaľ nevyjde nová verzia, knižnicu programu Excel je možné používať spoločne od roku 2016.
O operačnom programe
Môžete zistiť, ktorá interná verzia programu Excel je nainštalovaná pomocou nasledujúceho kódu: Keďže ide o metódu, je možné ju priniesť do vlastného programu tak, ako je.
GetInstallExcelVersion
Ak zavoláte metódu, verzia sa vráti ako číslo.
<summary>
インストールされている Excel の内部バージョンを取得します。
</summary>
<returns>インストールされている Excel の内部バージョン。正常に取得できなかった場合は 0 を返します。</returns>
static decimal GetInstallExcelVersion()
{
// Excel.Application の Type を取得
var type = Type.GetTypeFromProgID("Excel.Application");
if (type == null)
{
// Excel がインストールされていない
return 0;
}
object? application = null;
try
{
// Excel.Application のインスタンスを生成します
application = Activator.CreateInstance(type);
if (application == null)
{
// Excel.Application の生成に失敗
return 0;
}
// バージョンを取得
var ver = application.GetType().InvokeMember("Version", System.Reflection.BindingFlags.GetProperty, null, application, null);
if (ver == null)
{
return 0;
}
// 文字列を数値に変換します
decimal version;
if (!decimal.TryParse(ver.ToString(), out version))
{
return 0;
}
return version;
}
finally
{
// 生成した Excel のリソースを解放します
if (application != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(application);
}
}
}
Jednoduchým vysvetlením programu je použitie metódy na Excel.Application
získanie typuType.GetTypeFromProgID
ID programu,
Activator.CreateInstance
Metóda vytvorí Excel.Application
inštanciu súboru .
Excel.Application
Dôvodom negenerovania priamej inštancie programu je vyhnúť sa spoliehaniu sa na verziu knižnice programu Excel priamym odkazom.
Týmto spôsobom uvidíte najnovšiu verziu.
Potom sa môžete odvolať na Version
vlastnosti z vygenerovanej application
inštancie a získať verziu.
Načítaná verzia je verzia, ktorú má Excel interne. Napríklad Excel 2010 je 14.0, Excel 2013 je 15.0 a Excel 2016 a novšie verzie sú 16.0.
Všimnite si, že tento proces sa nelíši od skutočného spustenia programu Excel, takže ak nezavoláte metódu a Excel.Application
uvoľnenie , System.Runtime.InteropServices.Marshal.ReleaseComObject
proces programu Excel zostane.
Mimochodom, tento kód bol testovaný na .NET 6, ale myslím si, že môže byť použitý v .NET Framework v podstate rovnakým spôsobom.
Funguje v .NET, ale Type.GetTypeFromProgID
majte na pamäti, že metódy a metódy sú iba kód systému Windows a System.Runtime.InteropServices.Marshal.ReleaseComObject
nebudú fungovať na iných platformách.