VB.NET -> Export nach Excel COM Exception

RedWraith

Mitglied
Hallo !

Ich versuche im Moment einen DataGridView nach Excel zu exportieren, was an sich kein Problem da stellt, weil es reichlich Anleitungen im Internet zu finden gibt.

Leider scheitere ich schon ganz am Anfang, bevor ich überhaupt richtig angefangen hab, und zwar hier dran:

Code:
        Dim wApp As New Excel.Application
        Dim wBook As Excel.Workbook
        wApp.Visible = True

        wBook = wApp.Workbooks.Add()

Sobald ich versuche, den oben stehenden Code auszuführen, bricht mein Programm bei der letzten Zeile mit folgender COM Exception ab:
Code:
"Altes Format oder ungültige Typbibliothek. (Ausnahme von HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))"

Ich arbeite mit VisualBasic .NET 2005, habe Microsoft Office XP installiert und habe bei meinem VB Projekt die COM Bibliothek "Microsoft Excel 11.0 Object Library" als Referenz hinzugefügt.

Ich arbeite an dieser Sache schon seit Montag, komme aber weder vor noch zurück. Ich weiß ganz genau, dass das ganze warscheinlich nur an einer Kleinigkeit scheitert, aber ich finde es einfach nicht.

Ihr seit meine letzte Hoffnung
 
Oh Jungs...

Ich weiß, ihr habt noch nichts getan, aber anscheinend hat das schon gereicht um ein Stück eurer geballten Weisheit auf mich abfärben zu lassen :D

Ich habe die Lösung für mein Problem gerade eben gefunden und wie ich schon vermutet hatte, war das Ganze eine reine Banalität -.-

Zu finden ist die Lösung hier:
http://support.microsoft.com/kb/320369/en-us

Langer Artikel kurz gefasst:
Das Problem war, dass ich versucht habe, auf meinem Rechner, dessen Sprache standardmäßig auf Deutsch gestellt wird, ein englischsprachiges Excel zu automatisieren. Excel hat beim Starten versucht, ein zu meiner Standardeinstellung passenden Sprache zu laden, hat aber kein deutsches Sprachpack gefunden.

Das ganze lässt sich umgehen, indem man die Systemsprache temporär umstellt.

Code:
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


Warum so etwas Lächerliches wie ein Sprachpaket allerdings eine COM Exception auslösen muss, ist mir allerdings unverständlich -.-
 
Schön, dass du eine Lösung gefunden hast, dazu aber der Hinweis, Fragen zu VB.NET bitte im .NET-Forum zu stellen. Hier wird VB nur bis zur Version 6 behandelt, alle späteren Versionen sind .NET.


Der Doc!
 

Neue Beiträge

Zurück