Sprawdź wewnętrzną wersję programu Excel zainstalowaną na platformie .NET
Środowisko pracy
- Visual Studio
-
- informacji o wersji Visual Studio 2022
- .SIEĆ
-
- .NET 6.0
- Windows
-
- Okna 11
- Programu excel
-
- Platforma Microsoft 365
Warunki wstępne
- Windows
-
- Jedna z wersji
- Programu excel
-
- Jedna z wersji
Informacje o wersjach wewnętrznych
Tym razem możesz programowo sprawdzić wewnętrzną wersję programu Excel, ale od 07.05.2023 wewnętrzna wersja programu Excel 2016 i nowszych nie zmieniła się w stosunku do wersji 16.0. W związku z tym nie jest już możliwe zidentyfikowanie programu Excel 2016, 2019, 2021 i Microsoft 265 na podstawie ich wewnętrznych wersji. Ponieważ jednak wersja wewnętrzna się nie zmieniła, zaletą jest to, że dopóki nie pojawi się nowa wersja, biblioteka Excel może być używana wspólnie od 2016 roku.
O programie operacyjnym
Możesz dowiedzieć się, która wewnętrzna wersja programu Excel jest zainstalowana, za pomocą następującego kodu: Ponieważ jest to metoda, można ją przenieść do własnego programu w takiej postaci, w jakiej jest.
GetInstallExcelVersion
Jeśli wywołasz metodę, wersja zostanie zwrócona jako liczba.
<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);
}
}
}
Prostym wyjaśnieniem programu jest użycie metody w celu Excel.Application
uzyskania typu identyfikatoraType.GetTypeFromProgID
programu,
Activator.CreateInstance
Metoda tworzy instancję Excel.Application
.
Excel.Application
Powodem, dla którego nie generowane jest bezpośrednie wystąpienie, jest uniknięcie polegania na wersji biblioteki programu Excel przez bezpośrednie odwoływanie się do niej.
W ten sposób będziesz mógł zobaczyć najnowszą wersję.
Następnie możesz odwołać się do Version
właściwości z wygenerowanego application
wystąpienia i pobrać wersję.
Pobierana wersja jest wersją wewnętrznie zainstalowaną przez program Excel. Na przykład Excel 2010 to 14.0, Excel 2013 to 15.0, a Excel 2016 i nowsze to 16.0.
Zauważ, że ten proces nie różni się od faktycznego uruchamiania programu Excel, więc jeśli nie wywołasz metody i Excel.Application
nie zwolnisz , System.Runtime.InteropServices.Marshal.ReleaseComObject
proces programu Excel pozostanie.
Nawiasem mówiąc, ten kod został przetestowany na .NET 6, ale myślę, że można go używać w .NET Framework w bardzo podobny sposób.
Działa na platformie .NET, ale Type.GetTypeFromProgID
należy pamiętać, że metody i metody są kodem tylko dla systemu Windows i System.Runtime.InteropServices.Marshal.ReleaseComObject
nie będą działać na innych platformach.