هنگام کار کردن با برنامه Exel
یا (Automate) بوسیله یکی ازبرنامه Microsoft Visual Studio شما ممکن
است هتگام کار با متدهاي خاصی با یک Error به شرح زیر برخورد نمایید.(مثلا در
مقاله اي که درهمین سایت با عنوان Export کردن داده ها به Excel برخی از
دوستان نیز همین مورد را گزارش ودرخواست کمک نموده بودند).
Error: 0x80028018 (-2147647512)
Description: Old Format or Invalid Type Library
دراین مقاله به بررسی علت وجود این خطا و رفع
آن پرداخته شده است.
علت بروز خطا :
هنگامیکه یکی از شرایط زیر اتفاق افتاده باشد
هنگام صدا زدن یکی از متدهاي شی Excel این Error صادر می گردد.
1- متد مورد نظر نیازمند یک (LID(Local
identifier می باشد.
2- شما نسخه English برنامه Microsoft Excel
را اجرا درصورتیکه تنظیمات Regional and language setting در کامپیوتر شما
برروي زبانی غیر English پیکر بندي شده است.
پیرامون حل این مشکل شما می توانید یکی از
متدهاي زیر را بکار ببرید.
1- نصب Multilingual User Interface Pack براي
ورژن نرم افزار Office خود.
2- اجراي ویژگی یا متد Excel با استفاده از
InvokeMember بطوریکه شما می توانید از Cultureinfo براي صدا زدن آن
استفاده کنید. بعنوان مثال کد نمونه زیر نشان می دهد که شما چگونه می
توانید متد Add شی Workbook را بااستفاده از Cultureinfo مربوط به “us_en”
فراخوانی کنید.
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
New System.Globalization.CultureInfo("en-US")
oApp.Workbooks.Add()
System.Threading.Thread.CurrentThread.CurrentCulture =
oldCI
براي اطلاعات بیشتر براي کار با Microsoft
Office در محیطهاي چند زبانه اي می توانید از لینک زیر اطلاعات جامع تري
کسب نمایید.
http://msdn.microsoft.com/en-us/library/aa168494(office.11).aspx