NET-be telepített Excel belső verziójának ellenőrzése
Működési környezet
- Visual Studio
-
- Visual Studio 2022
- .HÁLÓ
-
- .NET 6.0
- Windows
-
- Windows 11 esetén
- Kitűnik
-
- Microsoft 365 esetén
Előfeltételek
- Windows
-
- Az egyik változat
- Kitűnik
-
- Az egyik változat
A belső verziók ismertetése
Ezúttal programozott módon ellenőrizheti az Excel belső verzióját, de 2023/05/07-től az Excel 2016-os és újabb verziói nem változtak a 16.0-ról. Ennek eredményeképpen már nem lehet azonosítani az Excel 2016-ot, 2019-et, 2021-et és Microsoft 265-öt belső verziójuk alapján. Mivel azonban a belső verzió nem változott, az az előnye, hogy amíg nem jelenik meg új verzió, az Excel könyvtár 2016 óta közösen használható.
Az operációs programról
A következő kóddal megtudhatja, hogy az Excel melyik belső verziója van telepítve: Mivel ez egy módszer, lehetőség van arra, hogy a saját programjába hozza, ahogy van.
GetInstallExcelVersion
Ha meghívja a metódust, a verzió számként lesz visszaadva.
<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);
}
}
}
A program egyszerű magyarázata az, hogy a módszert Excel.Application
használja a programazonosító típusánakType.GetTypeFromProgID
megszerzéséhez,
Activator.CreateInstance
A metódus létrehozza Excel.Application
a példányát.
Excel.Application
A közvetlen példánya létrehozásának azért nem hozható létre, mert nem hagyatkozhat az Excel-kódtár verziójára azáltal, hogy közvetlenül hivatkozik rá.
Ezzel láthatja a legújabb verziót.
Ezután hivatkozhat a létrehozott application
példány tulajdonságaira, Version
és lekérheti a verziót.
A beolvasott verzió az Excel belső verziója. Az Excel 2010 például 14,0, az Excel 2013 15,0, az Excel 2016 és újabb pedig 16,0.
Ne feledje, hogy ez a folyamat nem különbözik az Excel tényleges indításától, így ha nem hívja meg a metódust, és Excel.Application
nem engedi el, System.Runtime.InteropServices.Marshal.ReleaseComObject
az Excel folyamat megmarad.
Egyébként ezt a kódot a .NET 6-on tesztelték, de úgy gondolom, hogy a .NET keretrendszerben ugyanúgy használható.
NET-ben működik, de Type.GetTypeFromProgID
ne feledje, hogy a módszerek és módszerek csak Windows-kódok, és System.Runtime.InteropServices.Marshal.ReleaseComObject
más platformokon nem működnek.