NET'te yüklü olan Excel'in iç sürümünü denetleyin
Çalışma ortamı
- Visual Studio
-
- Visual Studio 2022
- .NET
-
- .NET 6.0
- Windows
-
- pencereler 11
- Excel
-
- Microsoft 365 (İngilizce)
Önkoşullar
- Windows
-
- Sürümlerden biri
- Excel
-
- Sürümlerden biri
Dahili Sürümler Hakkında
Bu sefer Excel'in dahili sürümünü programlı olarak kontrol edebilirsiniz, ancak 2023/05/07 itibariyle Excel 2016 ve sonraki sürümlerin dahili sürümü 16.0'dan değişmedi. Sonuç olarak, Excel 2016, 2019, 2021 ve Microsoft 265'i dahili sürümleriyle tanımlamak artık mümkün değildir. Ancak dahili sürüm değişmediği için avantajı yeni bir sürüm çıkmadığı sürece Excel kütüphanesinin 2016'dan beri ortak olarak kullanılabilmesidir.
İşletim programı hakkında
Excel'in hangi dahili sürümünün yüklü olduğunu aşağıdaki kodla öğrenebilirsiniz: Bir yöntem olduğu için kendi programınıza olduğu gibi getirmeniz mümkündür.
GetInstallExcelVersion
Yöntemi çağırırsanız, sürüm bir numara olarak döndürülür.
<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);
}
}
}
Programın basit bir açıklaması, program kimliğinin türünüType.GetTypeFromProgID
almak için Excel.Application
yöntemi kullanmaktır.
Activator.CreateInstance
Yöntemi, bir örneğini oluşturur Excel.Application
.
Excel.Application
Doğrudan bir örnek oluşturmamanın nedeni, Excel kitaplığının sürümüne doğrudan başvurarak güvenmekten kaçınmaktır.
Bunu yaparak, en son sürümü görebileceksiniz.
Daha sonra oluşturulan application
örnekten özelliklere başvurabilir Version
ve sürümü alabilirsiniz.
Alınan sürüm, Excel'in dahili olarak sahip olduğu sürümdür. Örneğin, Excel 2010 14.0, Excel 2013 15.0 ve Excel 2016 ve sonraki sürümleri 16.0'dır.
Bu işlemin Excel'i gerçekten başlatmaktan farklı olmadığını unutmayın, bu nedenle yöntemi çağırmazsanız ve Excel.Application
serbest bırakmazsanız, System.Runtime.InteropServices.Marshal.ReleaseComObject
Excel işlemi kalacaktır.
Bu arada, bu kod .NET 6'da test edildi, ancak .NET Framework'te de aynı şekilde kullanılabileceğini düşünüyorum.
NET'te çalışır, ancak Type.GetTypeFromProgID
yöntemlerin ve yöntemlerin yalnızca Windows kodu olduğunu ve System.Runtime.InteropServices.Marshal.ReleaseComObject
diğer platformlarda çalışmayacağını unutmayın.