PROBLEMĂ: Eroarea „Bibliotecă de format vechi sau de tip nevalid” când se automatizează Excel

ID articol: 320369 - Vizualizați produsele pentru care se aplică acest articol.
Măriți totul | Reduceți totul

În această pagină

SIMPTOME

Dacă automatizați Microsoft Excel cu Microsoft Visual Basic .NET, Microsoft Visual C# .NET sau Microsoft Visual C++, este posibil să primiți următoarea eroare când apelați anumite metode:
Eroare: 0x80028018 (-2147647512)
Descriere: Bibliotecă de format vechi sau de tip nevalid

CAUZĂ

Primiți această eroare la apelarea unei metode Excel când sunt adevărate următoarele condiții:
  • Metoda necesită un LCID (identificator de setări regionale).
  • Executați o versiune de Excel în limba engleză. Însă, setările regionale ale computerului sunt configurate pentru o altă limbă decât limba engleză.
În cazul în care computerul client execută versiunea în limba engleză de Excel și setările regionale pentru utilizatorul curent sunt configurate pentru altă limbă decât limba engleză, Excel va încerca să găsească pachetul lingvistic pentru limba configurată. Dacă nu se găsește pachetul lingvistic, se raportează eroarea.

REMEDIERE

Pentru a ocoli această problemă, utilizați una din următoarele metode:
  • Instalați Multilingual User Interface Pack pentru versiunea dvs. de Office.
  • Executați metoda sau proprietatea Excel utilizând InvokeMember pentru a fi posibilă specificarea CultureInfo pentru apelare. De exemplu, următorul cod arată cum poate fi invocat obiectul Workbooks din metoda Add cu „en-US” pe post de 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)
    
  • Sau, setați CultureInfo înainte de a apela metoda Excel. De exemplu:
    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

Când utilizați una dintre aceste soluții pentru un computer unde setările regionale nu se potrivesc cu versiunea curentă de limbă a Office, se recomandă să fiți familiarizat cu modul în care se comportă Excel și cu modul în care Excel va interpreta datele care pot fi formatate pentru anumite setări regionale. Pentru mai multe informații despre crearea de soluții globalizate pentru Excel cu Visual Studio .NET, consultați următoarele articole în MSDN:

Crearea de soluții Office pentru a fi utilizate în țări și regiuni multiple
http://msdn2.microsoft.com/en-us/library/aa168494(office.11).aspx
Probleme de globalizare și localizare pentru soluții create cu Microsoft Visual Studio Tools pentru Microsoft Office System
http://msdn2.microsoft.com/en-us/library/aa192494(office.11).aspx

STARE

Microsoft a confirmat că aceasta este o eroare în produsele Microsoft enumerate în secțiunea „Se aplică la”.

INFORMAȚII SUPLIMENTARE

Pași pentru a reproduce comportamentul

  1. Verificați că setările regionale pentru computer sunt setate la altă limbă decât limba engleză.

    Pentru Windows 2000:
    1. În Windows Control Panel, faceți dublu clic pe Regional Options.
    2. În caseta General, selectați o locație, apoi faceți clic pe OK.
    Pentru Windows XP sau Windows Server 2003:
    1. În Panoul de control (Control Panel), deschideți Opțiuni regionale și lingvistice (Regional and Language Options).
    2. În fila Opțiuni regionale (Regional Options), selectați o setare regională, apoi faceți clic pe OK.
  2. Porniți Microsoft Visual Studio .NET.
  3. În meniul File, indicați spre New, apoi faceți clic pe Project. În caseta de dialog New Project, sub Project Types, faceți clic pe Visual Basic Projects. Sub Templates, faceți clic pe Windows Application, apoi pe OK. Implicit, se creează Form1.
  4. În meniul View, faceți clic pe Toolbox, apoi adăugați un buton la Form1.
  5. Pentru a afișa fereastra de cod pentru formular, faceți dublu clic pe Button1.
  6. În fereastra de cod, înlocuiți următorul cod
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
    End Sub
    					
    cu:
    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. Adăugați următoarea linie la începutul modului de cod Form1:
    Option Strict Off
  8. Apăsați F5 pentru a compila și executa programul.
  9. Pentru a genera eroarea, faceți clic pe Button1. Eroarea se produce în linia:
    oDoc = oApp.Workbooks.Add
    					

REFERINȚE

Pentru mai multe informații despre automatizarea Office, vizitați următorul site Web Microsoft Office Development:
http://support.microsoft.com/ofd
În plus, consultați următoarele articole din Baza de cunoștințe Microsoft:
301982 Automatizarea Microsoft Excel cu Visual Basic .NET (articolul poate să fie în limba engleză)
302084 Automatizarea Microsoft Excel cu Microsoft Visual C# .NET (articolul poate să fie în limba engleză)

Proprietă?i

ID articol: 320369 - Ultima examinare: 29 decembrie 2007 - Revizie: 8.3
SE APLICĂ LA
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual C++ 6.1
  • Microsoft Visual J# .NET 2003 Standard Edition
  • Microsoft Visual Studio Tools for the Microsoft Office System version 2003
Cuvinte cheie: 
kbvs2002sp1sweep kbautomation kbbug kbpending KB320369

Trimite?i feedback