KĻŪDA: Kļūda “Old format or invalid type library” (Vecs formāts vai nederīga tipu bibliotēka) programmas Excel automatizēšanas laikā

S I M P T O M I

Ja programmu Microsoft Excel automatizē, izmantojot Microsoft Visual Basic .NET, Microsoft Visual C# .NET vai Microsoft Visual C++, izsaucot atsevišķas metodes, var tikt parādīts kļūdas ziņojums:
Error: 0x80028018 (-2147647512) (Kļūda: 0x80028018 (-2147647512))
Description: Old Format or Invalid Type Library (Apraksts: vecs formāts vai nederīga tipu bibliotēka)

I E M E S L S

Šādu kļūdas ziņojumu var saņemt, izsaucot programmas Excel metodi, kad ir spēkā šādi nosacījumi:
  • Metodei nepieciešams LCID (atrašanās vietas identifikators).
  • Jūs lietojat programmas Excel versiju angļu valodā. Datora reģionālajos iestatījumos savukārt norādīta cita valoda.
Ja klienta datorā tiek izmantota programmas Excel versija angļu valodā un pašreizējā lietotāja atrašanās vieta ir konfigurēta kādai citai valodai, programma Excel mēģinās atrast konfigurētās valodas pakotni. Ja valodas pakotne netiek atrasta, tiek parādīts kļūdas ziņojums.

P R O F I L A K S E

Lai novērstu šo problēmu, izmantojiet kādu no tālāk aprakstītājām metodēm.
  • Instalējiet daudzvalodu lietotāja interfeisa pakotni savai Office versijai.
  • Izpildiet programmas Excel metodi vai rekvizītu, izmantojot InvokeMember, lai izsaukumam varētu norādīt CultureInfo. Piemēram, šis kods parāda, kā var izsaukt objekta Workbooks (Darbgrāmatas) metodi Add (Pievienot), CultureInfo norādot “en-US”:
    Dim oApp As New Excel.Application()
    oApp.Visible = True
    oApp.Visible = 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 var arī iestatīt pirms programmas Excel metodes izsaukšanas. Piemēram:
    Dim oApp As New Excel.Application()
    oApp.Visible = True
    oApp.Visible = 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

Izmantojot vienu no šiem problēmas risinājumiem datorā, kura reģionālie iestatījumi nesakrīt ar pašreizējo Office valodas versiju, ieteicams pārzināt programmas Excel darbību un to, kā programma interpretē datus, kas ir formatēti atbilstoši noteiktai atrašanās vietai. Lai iegūtu plašāku informāciju par globālu programmas Excel risinājumu izveidi, izmantojot Visual Studio .NET, skatiet šos MSDN rakstus:

Office risinājumu veidošana lietošanai vairākās valstīs/reģionos (EN) Globalizācijas un lokalizācijas problēmas risinājumiem, kas izveidoti ar Microsoft Visual Studio Tools for Microsoft Office (EN)

S T A T U S S

Korporācija Microsoft ir apstiprinājusi, ka šī kļūda var rasties Microsoft produktos, kas minēti sadaļā “Attiecas uz”.

P A P I L D I N D O R MĀ C I J A

Šādas situācijas apzināta radīšana

  1. Pārliecinieties, ka datora atrašanās vietas valoda nav norādīta angļu valoda.

    Windows 2000
    1. Windows vadības panelī veiciet dubultklikšķi uz Regional Options (Reģionālās opcijas).
    2. Cilnē General (Vispārīgi) izvēlieties atrašanās vietu un pēc tam noklikšķiniet uz OK (Labi).
    Sistēmām Windows XP un Windows Server 2003
    1. Vadības panelī atveriet reģionālās un valodas opcijas.
    2. Cilnē Regional Options (Reģionālās opcijas) izvēlieties atrašanās vietu un tad noklikšķiniet uz OK (Labi).
  2. Startējiet Microsoft Visual Studio .NET.
  3. Izvēlnē File (Fails) norādiet uz New (Jauns) un pēc tam noklikšķiniet uz Project (Projekts). Dialoglodziņa New Project (Jauns projekts) sadaļā Project Types (Projektu tipi) noklikšķiniet uz Visual Basic Projects (Visual Basic projekti). Sadaļā Templates (Veidnes) noklikšķiniet uz Windows Application (Windows lietojumprogramma) un pēc tam uz OK (Labi). Pēc noklusējuma tiek izveidota veidlapa Form1.
  4. Izvēlnē View (Skats) noklikšķiniet uz Toolbox (Rīklodziņš) un pēc tam Form1 pievienojiet pogu.
  5. Lai parādītu veidlapas koda logu, veiciet dubultklikšķi uz Button1.
  6. Koda logā nomainiet šo kodu:
    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles Button1.Click
    End Sub
    uz:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim oApp As Object
    Dim oApp As Object
    oApp = CreateObject("Excel.Application")
    oApp.Visible = True
    oDoc = oApp.Workbooks.Add
    oDoc.Close()
    oApp.Quit()
    oDoc = Nothing
    oDoc = Nothing
    End Sub
  7. Pievienojiet šo rindu koda moduļa Form1 sākumā:
    Option Strict Off
  8. Nospiediet taustiņu F5, lai izveidotu un palaistu programmu.
  9. Lai ģenerētu kļūdu, noklikšķiniet uz Button1. Kļūda ir šajā rindiņā:
    oDoc = oApp.Workbooks.Add

U Z Z IŅ A S

Lai iegūtu papildinformāciju par Office automatizēšanu, apmeklējiet šo Microsoft Office izstrādes vietni: Izlasiet arī šos Microsoft zināšanu bāzes rakstus:
301982 Kā automatizēt programmu Microsoft Excel, izmantojot Visual Basic .NET (Šī saite var norādīt uz saturu, kurš daļēji vai pilnībā ir angļu valodā)
302084 Kā automatizēt programmu Microsoft Excel, izmantojot Microsoft Visual C# .NET (Šī saite var norādīt uz saturu, kurš daļēji vai pilnībā ir angļu valodā)
Rekvizīti

Raksta ID: 320369. Pēdējo reizi pārskatīts: 2008. gada 29. apr.. Pārskatījums: 1

Atsauksmes