Kontrollige .NET-i installitud Exceli sisemist versiooni
Töökeskkond
- Visuaalne stuudio
-
- Visual Studio 2022
- .NET
-
- .NET 6.0
- Windows
-
- Windows 11
- Excel
-
- Microsoft 365
Eeltingimused
- Windows
-
- Üks versioonidest
- Excel
-
- Üks versioonidest
Teave sisemiste versioonide kohta
Seekord saate Exceli sisemist versiooni programmiliselt kontrollida, kuid alates 2023/05/07 ei ole Excel 2016 ja uuemate versioonide sisemine versioon 16.0-st muutunud. Seetõttu pole enam võimalik excel 2016, 2019, 2021 ja Microsoft 265 nende siseversioonide järgi tuvastada. Kuna sisemine versioon ei ole muutunud, on eeliseks see, et seni, kuni uus versioon ei tule välja, saab Exceli raamatukogu kasutada ühiselt alates 2016. aastast.
Operatsiooniprogrammi kohta
Saate teada, milline Exceli sisemine versioon on installitud järgmise koodiga: Kuna see on meetod, on võimalik see oma programmi viia nii, nagu see on.
GetInstallExcelVersion
Kui helistate meetodile, tagastatakse versioon numbrina.
<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);
}
}
}
Programmi lihtne selgitus on kasutada meetodit Excel.Application
programmi ID tüübiType.GetTypeFromProgID
saamiseks,
Activator.CreateInstance
Meetod loob Excel.Application
eksemplari .
Excel.Application
Põhjus, miks otsest eksemplari ei looda, on vältida Exceli teegi versioonile tuginemist, viidates sellele otse.
Seda tehes näete uusimat versiooni.
Seejärel saate viidata Version
loodud application
eksemplari atribuutidele ja hankida versiooni.
Allalaaditav versioon on see versioon, mis Excelil sisemiselt on. Näiteks Excel 2010 on 14,0, Excel 2013 on 15,0 ning Excel 2016 ja uuemad versioonid on 16,0.
Pange tähele, et see protsess ei erine Exceli tegelikust käivitamisest, nii et kui te ei helista meetodile ja Excel.Application
vabastate , System.Runtime.InteropServices.Marshal.ReleaseComObject
jääb Exceli protsess alles.
Muide, seda koodi on testitud .NET 6-ga, kuid ma arvan, et seda saab .NET Frameworkis kasutada samamoodi.
See töötab .NET-is, kuid Type.GetTypeFromProgID
pidage meeles, et meetodid ja meetodid on ainult Windowsi kood ja System.Runtime.InteropServices.Marshal.ReleaseComObject
ei tööta teistel platvormidel.