Pazīmes
Ja automatizējat Microsoft Excel, izmantojot Microsoft Visual Basic .NET, Microsoft Visual C# .NET vai Microsoft Visual C++, izsaucot noteiktas metodes, var tikt parādīts šāds kļūdas ziņojums:
Piezīme
Kļūda: 0x80028018 (-2147647512)
Apraksts: veca formāta vai nederīga tipa bibliotēka
Iemesls
Šī kļūda rodas, izsaucot Excel metodi, ja ir šādi nosacījumi:
Šai metodei nepieciešams LCID (lokalizācijas identifikators).
Jūs lietojat programmas Excel angļu valodas versiju. Tomēr datora reģionālie iestatījumi ir konfigurēti valodai, kas nav angļu valoda.
Ja klienta datorā darbojas Excel angļu valodas versija un pašreizējā lietotāja lokalizācija ir konfigurēta valodai, kas nav angļu valoda, Excel mēģinās atrast konfigurētās valodas pakotni. Ja valodas pakotne netiek atrasta, tiek ziņots par kļūdu.
Risinājums
Lai apietu šo problēmu, varat izmantot kādu no šīm metodēm:
Savai Office versijai instalējiet daudzvalodu lietotāja interfeisa pakotni.
Izpildiet Excel metodi vai rekvizītu, izmantojot InvokeMember, lai varētu norādīt zvana CultureInfo. Piemēram, tālāk norādītais kods parāda, kā var izsaukt objektu Workbooks Add metode ar "lv-US" kā 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)Vai arī pirms Excel metodes izsaukšanas iestatiet CultureInfo. Piemērs.
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 = oldCISadaļā Microsoft Office\Office11 izveidojiet direktoriju 1033. Pēc tam kopējiet excel.exe direktorijā 1033 un pārdēvējiet to par xllex.dll.
Lai iegūtu papildinformāciju, noklikšķiniet uz šīs saites:
http://blogs.msdn.com/eric_carter/archive/2005/06/15/429515.aspx
Ja izmantojat kādu no šiem risinājumiem datorā, kura reģionālie iestatījumi neatbilst pašreizējai Office valodas versijai, jums ir jāzina, kā Excel darbojas un kā Excel interpretē datus, kas var būt formatēti konkrētai lokalizācijai. Lai iegūtu papildinformāciju par globalizētu Excel risinājumu rakstīšanu, izmantojot Visual Studio .NET, lūdzu, skatiet šos MSDN rakstus:
Office risinājumu izveide lietošanai vairākās valstīs/reģionos
http://msdn2.microsoft.com/en-us/library/aa168494(office.11).aspx Globalizācijas un lokalizācijas problēmas risinājumiem, kas izveidoti, izmantojot Microsoft Office Visual Studio Tools sistēmai Microsoft Office
http://msdn2.microsoft.com/en-us/library/aa192494(office.11).aspx
Statuss
Microsoft apstiprināja, ka šī ir kļūda Microsoft produktos, kas norādīti sadaļā "attiecas uz".
Papildinformācija
Darbības reproducēšanai
Pārliecinieties, vai datora lokalizācijas valoda nav angļu valoda.
Operētājsistēmā Windows 2000:
- Windows vadības panelī veiciet dubultklikšķi uz Reģionālās opcijas.
- Cilnē Vispārīgi atlasiet atrašanās vietu un pēc tam noklikšķiniet uz Labi.
Operētājsistēmai Windows XP vai Windows Server 2003:
- Vadības panelī atveriet Reģionālās un valodu opcijas.
- Cilnē Reģionālās opcijas atlasiet lokalizāciju un pēc tam noklikšķiniet uz Labi.
Startējiet Microsoft Visual Studio .NET.
Izvēlnē Fails norādiet uz Jauns un pēc tam noklikšķiniet uz Projektēt. Dialoglodziņa Jauns projekts sadaļā Projektu veidi noklikšķiniet uz Visual Basic projekti. Sadaļā Veidnes noklikšķiniet uz Windows lietojumprogramma un pēc tam uz Labi. Pēc noklusējuma tiek izveidota veidlapa Form1.
Izvēlnē Skats noklikšķiniet uz Rīklodziņš un pēc tam pievienojiet pogu Forma1.
Lai parādītu formas kodu logu, veiciet dubultklikšķi uz pogas 1.
Kodu logā aizstājiet šādu kodu
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click End Subar:
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 SubForm1 koda moduļa sākumā pievienot šādu rindu:
Option Strict OffNospiediet taustiņu F5, lai izveidotu un palaistu programmu.
Lai ģenerētu kļūdu, noklikšķiniet uz Poga1. Kļūda rodas rindiņā ar tekstu:
oDoc = oApp.Workbooks.Add
Atsauces
Papildinformāciju par Office automatizāciju skatiet Microsoft Office izstrādes vietnē:
http://support.microsoft.com/ofd Papildus skatiet šos Microsoft zināšanu bāzes rakstus:
301982 Kā automatizēt Microsoft Excel no Visual Basic .NET
302084 Kā automatizēt Microsoft Excel no Microsoft Visual C# .NET