تحقق من الإصدار الداخلي من Excel المثبت في .NET
بيئة التشغيل
- فيجوال ستوديو
-
- فيجوال ستوديو 2022
- .صافي
-
- .NET 6.0
- نوافذ
-
- ويندوز ١١
- اكسل
-
- مايكروسوفت 365
المتطلبات المسبقه
- نوافذ
-
- أحد الإصدارات
- اكسل
-
- أحد الإصدارات
حول الإصدارات الداخلية
هذه المرة ، يمكنك التحقق من الإصدار الداخلي من Excel برمجيا ، ولكن اعتبارا من 2023/05/07 ، لم يتغير الإصدار الداخلي من Excel 2016 والإصدارات الأحدث من 16.0. نتيجة لذلك ، لم يعد من الممكن تحديد Excel 2016 و 2019 و 2021 و Microsoft 265 من خلال إصداراتها الداخلية. ومع ذلك ، نظرا لأن الإصدار الداخلي لم يتغير ، فإن الميزة هي أنه طالما لم يتم إصدار إصدار جديد ، يمكن استخدام مكتبة Excel بشكل مشترك منذ عام 2016.
حول برنامج التشغيل
يمكنك معرفة الإصدار الداخلي من Excel المثبت باستخدام التعليمة البرمجية التالية: نظرا لأنها طريقة ، فمن الممكن إحضارها إلى برنامجك الخاص كما هي.
GetInstallExcelVersion
إذا اتصلت بالطريقة ، إرجاع الإصدار كرقم.
<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);
}
}
}
شرح بسيط للبرنامج هو استخدام الطريقة للحصول Excel.Application
على نوعType.GetTypeFromProgID
معرف البرنامج ،
Activator.CreateInstance
ينشئ الأسلوب مثيلا Excel.Application
ل .
Excel.Application
سبب عدم إنشاء مثيل مباشر هو تجنب الاعتماد على إصدار مكتبة Excel بالرجوع إليه مباشرة.
من خلال القيام بذلك ، ستتمكن من رؤية أحدث إصدار.
يمكنك بعد ذلك الرجوع إلى Version
الخصائص من المثيل الذي تم إنشاؤه application
والحصول على الإصدار.
الإصدار الذي يتم استرداده هو الإصدار الذي يمتلكه Excel داخليا. على سبيل المثال، Excel 2010 هو 14.0، وExcel 2013 هو 15.0، وExcel 2016 والإصدارات الأحدث هي 16.0.
لاحظ أن هذه العملية لا تختلف عن بدء تشغيل Excel فعليا ، لذلك إذا لم تقم باستدعاء الطريقة والإصدار Excel.Application
، System.Runtime.InteropServices.Marshal.ReleaseComObject
فستظل عملية Excel.
بالمناسبة ، تم اختبار هذا الرمز على .NET 6 ، لكنني أعتقد أنه يمكن استخدامه في .NET Framework بنفس الطريقة تقريبا.
إنه يعمل في .NET ، ولكن Type.GetTypeFromProgID
ضع في اعتبارك أن الأساليب والأساليب هي رمز Windows فقط ولن System.Runtime.InteropServices.Marshal.ReleaseComObject
تعمل على الأنظمة الأساسية الأخرى.