Momentan sunteți offline, așteptați să vă reconectați la internet

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

Asistența pentru Office 2003 s-a încheiat

Microsoft a încheiat asistența pentru Office 2003 la data de 8 aprilie 2014. Această schimbare a afectat actualizările de software și opțiunile de securitate. Aflați ce înseamnă aceasta pentru dvs. și cum puteți rămâne protejat.

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 = TrueoApp.UserControl = TrueDim oBooks As Object = oApp.WorkbooksDim 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 = TrueoApp.UserControl = TrueDim oldCI As System.Globalization.CultureInfo = _    System.Threading.Thread.CurrentThread.CurrentCultureSystem.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 multipleProbleme de globalizare şi localizare pentru soluţii create cu Microsoft Visual Studio Tools pentru Microsoft Office System
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.ClickEnd 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 = NothingEnd 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: Î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ă)
XL2003 XL2007
Proprietăți

ID articol: 320369 - Ultima examinare: 12/29/2007 10:35:12 - Revizie: 8.3

  • 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
  • kbvs2002sp1sweep kbautomation kbbug kbpending KB320369
Feedback