Tarkista .NET: ään asennettu Excelin sisäinen versio
Toimintaympäristö
- Visuaalinen studio
-
- Visuaalinen studio 2022
- .VERKKO
-
- .NET 6.0
- Windows
-
- Windows 11
- Erottua
-
- Microsoft 365
Edellytykset
- Windows
-
- Yksi versioista
- Erottua
-
- Yksi versioista
Tietoja sisäisistä versioista
Tällä kertaa voit tarkistaa Excelin sisäisen version ohjelmallisesti, mutta vuodesta 2023/05/07 lähtien Excel 2016: n ja uudempien versioiden sisäinen versio ei ole muuttunut versiosta 16.0. Tämän seurauksena Excel 2016, 2019, 2021 ja Microsoft 265 eivät enää ole tunnistettavissa niiden sisäisten versioiden perusteella. Koska sisäinen versio ei kuitenkaan ole muuttunut, etuna on, että niin kauan kuin uusi versio ei tule ulos, Excel-kirjastoa voidaan käyttää yhteisesti vuodesta 2016 lähtien.
Tietoja käyttöohjelmasta
Voit selvittää, mikä Excelin sisäinen versio on asennettu seuraavalla koodilla: Koska se on menetelmä, on mahdollista tuoda se omaan ohjelmaan sellaisenaan.
GetInstallExcelVersion
Jos kutsut menetelmää, versio palautetaan numerona.
<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);
}
}
}
Yksinkertainen selitys ohjelmasta on käyttää menetelmää Excel.Application
ohjelmatunnuksenType.GetTypeFromProgID
tyypin saamiseksi,
Activator.CreateInstance
Menetelmä luo esiintymän Excel.Application
.
Excel.Application
Syy siihen, että suoraa esiintymää ei luoda, on välttää luottamista Excel-kirjaston versioon viittaamalla siihen suoraan.
Näin tekemällä näet uusimman version.
Voit sitten viitata Version
luodun application
esiintymän ominaisuuksiin ja saada version.
Noudettu versio on Excelin sisäinen versio. Esimerkiksi Excel 2010 on 14.0, Excel 2013 on 15.0 ja Excel 2016 ja uudemmat ovat 16.0.
Huomaa, että tämä prosessi ei eroa Excelin käynnistämisestä, joten jos et soita menetelmään ja Excel.Application
vapauta , System.Runtime.InteropServices.Marshal.ReleaseComObject
Excel-prosessi säilyy.
Muuten, tämä koodi on testattu .NET 6: lla, mutta mielestäni sitä voidaan käyttää .NET Frameworkissa samalla tavalla.
Se toimii .NET: ssä, mutta Type.GetTypeFromProgID
muista, että menetelmät ja menetelmät ovat vain Windows-koodia eivätkä System.Runtime.InteropServices.Marshal.ReleaseComObject
toimi muilla alustoilla.