Hallo Zusammen,
Ich bin noch verhältnismäßig neu beim Programmieren von VB . NET
Wenn ich Daten aus Excel (2007, SP2 auf Windows XP SP3) mit Visual Basic .Net (9.0 SP1) einlesen möchte bekomme ich ständig folgende Fehlermeldung:
System.Runtime.InteropServices.COMException was unhandled ErrorCode=-2147319784 Message="Altes Format oder ungültige Typbibliothek. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))" Source="Microsoft.Office.Interop.Excel"
Dabei füge ich "Excel Microsoft 12.0 Object Library" in mein Projekt ein. Den Quellcode habe ich unten angefügt. Ich habe schon ettliches probiert, doch irgendwas mache ich wohl noch falsch. Meine Vorgehensweise: Erstelle ne simple Arbeitsmappe in Excel mit ein paar zahlen (startend oben links). Speichere diese unter c:\ als "test.xlsx" Erstelle ein Project und füge die Excel Microsoft 12.0 Object Library ein. Schiebe nen Button in mein form1 und schreibe folgenden Code (s.u.).
Die Fehlermeldung verfolgt mich auch auf andere Computer (Windows XP SP3) und das ist ne Liste von Sachen die ich schon probiert habe:
- Verschiedene (ältere) Office Bibliotheken referenziert
- Foren nach diesem Problem durchsucht
- Spracheinstellungen geändert
- Updates überprüft und installiert
- Diagnosetool in Excel ausführen lassen
- Visual Basic neu installiert
Nun ja, ich bin mittlerweile ziehmlich ratlos und würde mich über jeden Rat oder Hilfe sehr sehr freuen!
Schöne Grüße
Micha
Ich bin noch verhältnismäßig neu beim Programmieren von VB . NET
Wenn ich Daten aus Excel (2007, SP2 auf Windows XP SP3) mit Visual Basic .Net (9.0 SP1) einlesen möchte bekomme ich ständig folgende Fehlermeldung:
System.Runtime.InteropServices.COMException was unhandled ErrorCode=-2147319784 Message="Altes Format oder ungültige Typbibliothek. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))" Source="Microsoft.Office.Interop.Excel"
Dabei füge ich "Excel Microsoft 12.0 Object Library" in mein Projekt ein. Den Quellcode habe ich unten angefügt. Ich habe schon ettliches probiert, doch irgendwas mache ich wohl noch falsch. Meine Vorgehensweise: Erstelle ne simple Arbeitsmappe in Excel mit ein paar zahlen (startend oben links). Speichere diese unter c:\ als "test.xlsx" Erstelle ein Project und füge die Excel Microsoft 12.0 Object Library ein. Schiebe nen Button in mein form1 und schreibe folgenden Code (s.u.).
Die Fehlermeldung verfolgt mich auch auf andere Computer (Windows XP SP3) und das ist ne Liste von Sachen die ich schon probiert habe:
- Verschiedene (ältere) Office Bibliotheken referenziert
- Foren nach diesem Problem durchsucht
- Spracheinstellungen geändert
- Updates überprüft und installiert
- Diagnosetool in Excel ausführen lassen
- Visual Basic neu installiert
Nun ja, ich bin mittlerweile ziehmlich ratlos und würde mich über jeden Rat oder Hilfe sehr sehr freuen!
Schöne Grüße
Micha
Code:
Imports excel = Microsoft.Office.Interop.Excel Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim xlsApp As excel.Application Dim objectExcel As New excel.Application Dim objectWrkBk As excel.Workbook Dim objectSht As excel.Worksheet Dim range As excel.Range Dim rowCnt As Integer Dim colCnt As Integer Dim Objt As Object xlsApp = New excel.ApplicationClass objectWrkBk = objectExcel.Workbooks.Open("C:\test.xlsx") objectSht = objectWrkBk.Worksheets("Sheet1") range = objectSht.UsedRange For rowCnt = 1 To range.Rows.Count For colCnt = 1 To range.Columns.Count Objt = CType(range.Cells(rowCnt, colCnt), excel.Range) MsgBox(Objt.value) Next Next objectWrkBk.Close() xlsApp.Quit() releaseObject(xlsApp) releaseObject(objectWrkBk) releaseObject(objectSht) End Sub Private Sub releaseObject(ByVal objt As Object) Try System.Runtime.InteropServices.Marshal.ReleaseComObject(objt) objt = Nothing Catch ex As Exception objt = Nothing Finally GC.Collect() End Try End Sub End Class
Comment