الخطأ: "تنسيق قديم أو مكتبة أنواع غير صالحة" عند أتمتة Excel

الأعراض

أتمتة Microsoft Excel باستخدام Microsoft Visual Basic.NET أو Microsoft Visual C#.NET Microsoft Visual c + +، قد تتلقى الخطأ التالي عند استدعاء أساليب معينة:
خطأ: 0x80028018 (-2147647512)
الوصف: تنسيق قديم أو مكتبة أنواع غير صالحة

السبب

تتلقى هذا الخطأ استدعاء أسلوب Excel إذا تحققت الشروط التالية:
  • يتطلب الأسلوب الذي LCID (معرف اللغة المحلية).
  • يمكنك تشغيل إصدار اللغة الإنجليزية من Excel. ومع ذلك، يتم تكوين الإعدادات الإقليمية للكمبيوتر لغة غير الإنجليزية.
إذا كان الكمبيوتر العميل تشغيل إصدار اللغة الإنجليزية من Excel وتكوين الإعدادات المحلية للمستخدم الحالي لغة خلاف اللغة الإنكليزية، سيحاول Excel تحديد موقع حزمة اللغة للغة التي تم تكوينها. إذا لم يتم العثور على حزمة اللغة، يتم الإعلام عن الخطأ.

الحل البديل

لحل هذه المشكلة، يمكنك استخدام إحدى الطرق التالية:
  • قم بتثبيت "حزمة واجهة المستخدم المتعددة اللغات" لإصدار Office لديك.
  • تنفيذ Excel الأسلوب أو الخاصية باستخدام إينفوكيميمبير بحيث يمكنك تحديد معلومات الثقافة للاتصال. على سبيل المثال، التعليمات البرمجية التالية توضح كيف يمكنك استدعاء الأسلوب Add مع "en-US" ك CultureInfoالكائن المصنفات :
    Dim oApp As New Excel.Application()oApp.Visible = True
    oApp.UserControl = True
    Dim oBooks As Object = oApp.Workbooks
    Dim ci As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-US")
    oBooks.GetType().InvokeMember("Add", Reflection.BindingFlags.InvokeMethod, Nothing, oBooks, Nothing, ci)

  • أو تعيين CultureInfo قبل استدعاء الأسلوب Excel. على سبيل المثال:
    Dim oApp As New Excel.Application()oApp.Visible = True
    oApp.UserControl = True
    Dim oldCI As System.Globalization.CultureInfo = _
    System.Threading.Thread.CurrentThread.CurrentCulture
    System.Threading.Thread.CurrentThread.CurrentCulture = _
    New System.Globalization.CultureInfo("en-US")
    oApp.Workbooks.Add()
    System.Threading.Thread.CurrentThread.CurrentCulture = oldCI
  • إنشاء دليل 1033 ضمن Microsoft Office\Office11. ثم انسخ excel.exe إلى الدليل 1033، وتسميته باسم xllex.dll.

    لمزيد من المعلومات، انقر فوق الارتباط التالي:
    http://blogs.msdn.com/eric_carter/archive/2005/06/15/429515.aspx

عند استخدام أحد هذه الحلول لجهاز كمبيوتر حيث لا تطابق الإعدادات الإقليمية الحالية إصدار اللغة من Office، يجب أن تكون على دراية بسلوك Excel وكيف يفسر Excel البيانات التي قد يتم تنسيق لغة معينة. للحصول على مزيد من التفاصيل حول كتابة المعولم حلول Excel مع Visual Studio.NET، الرجاء مراجعة المقالات التالية في موقع MSDN:

إنشاء حلول Office للاستخدام في البلدان/المناطق متعددةالعولمة ومشاكل الترجمة للحلول التي تم إنشاؤها باستخدام Microsoft Visual Studio أدوات لنظام Microsoft Office

الحالة

أقرت Microsoft أن هذا هو الشوائب في منتجات Microsoft المسردة في قسم "تنطبق على".

مزيد من المعلومات

خطوات إعادة إنشاء المشكلة

  1. تحقق من أن يتم تعيين الإعدادات المحلية للكمبيوتر إلى لغة مختلفة عن اللغة الإنكليزية.

    لنظام التشغيل Windows 2000:
    1. في "لوحة التحكم"، انقر نقراً مزدوجاً فوق الخيارات الإقليمية.
    2. في التبويب عام ، حدد موقعا، وثم انقر فوق موافق.
    لنظام التشغيل Windows XP أو Windows Server 2003:
    1. في "لوحة التحكم"، افتح الخيارات الإقليمية وخيارات اللغة.
    2. في تبويب الخيارات الإقليمية ، تحديد إعدادات محلية ومن ثم انقر فوق موافق.
  2. Microsoft Visual Studio.NET.بدء تشغيل
  3. من القائمة ملف، أشر إلى جديد ثم انقر فوق المشروع. في مربع الحوار مشروع جديد ، ضمن أنواع المشروع، انقر فوق مشاريع Visual Basic. ضمن قوالب، انقر فوق تطبيق Windowsومن ثم انقر فوق موافق. بشكل افتراضي، يتم إنشاء Form1.
  4. من القائمة عرض ، انقر فوق مربع الأدواتثم قم بإضافة زر إلى Form1.
  5. لعرض إطار التعليمات البرمجية للنموذج، انقر نقراً مزدوجاً فوق Button1.
  6. في إطار التعليمات البرمجية، استبدل التعليمة البرمجية التالية
    Private Sub Button1_Click(ByVal sender As System.Object, _                          ByVal e As System.EventArgs) _
    Handles Button1.Click
    End Sub

    بواسطة:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click    Dim oApp As Object
    Dim oDoc As Object
    oApp = CreateObject("Excel.Application")
    oApp.Visible = True
    oDoc = oApp.Workbooks.Add
    oDoc.Close()
    oApp.Quit()
    oDoc = Nothing
    oApp = Nothing
    End Sub

  7. أضف السطر التالي إلى بداية الوحدة النمطية للتعليمات البرمجية Form1 :
    Option Strict Off
  8. اضغط F5 لإنشاء البرنامج وتشغيله.
  9. لإنشاء الخطأ، انقر فوق " Button1". حدث الخطأ في السطر الذي به:
    oDoc = oApp.Workbooks.Add

المراجع

لمزيد من المعلومات حول "التشغيل الآلي للمكاتب"، قم بزيارة موقع Microsoft Office على ويب التنمية ما يلي:بالإضافة إلى ذلك، راجع مقالات "قاعدة معارف Microsoft" التالية:
كيفية أتمتة Microsoft Excel من Visual Basic.NET 301982

كيفية أتمتة Microsoft Excel من Microsoft Visual C#.NET 302084

خصائص

رقم الموضوع: 320369 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 1

تعليقات