auf Excel-Tabelle zugreifen
-
Hallo,
Ich benutze Visual 2008 Express und möchte mit einem Programm automatisch eine mit Excel erstellte Seite erstellen. Meine Frage wären:
- Wie stelle ich eine Verbindung zur Tabelle her und schreibe in diese?
-
Wäre ist nicht einfach gewesen erstmal auf Codeproject zu suchen?
http://www.codeproject.com/info/search.aspx?artkw=excel&sbo=kw
-
OK. Also ich habe jetzt einen nützlichen Artikel gefunden mit dem man auf Excel zugreifen kann. Allerdings wird in der Anleitung eine Bibliothek für Excel vorausgesetzt: Microsoft.Office.Interop.Excel
Dummerweise ist diese Bibliothek für Office 2003/2007 geschrieben. Aber der Freund für den ich das Programm schreibe benutzt die alte Version (wie auch noch viele andere) und auch OpenOffice (mit dem ich arbeite) können nur im xls-Format speichern (Excel 97).
Liege ich richtig wenn ich meine, dass diese neue Bibliothek das nicht unterstützt?
Ansonsten habe ich nur fertige Bibliotheken und Programme gefunden. Aber eigentlich wollte ich es komplett selber programmieren.
In der internen Hilfe von Visual C++ habe ich gelesen, dass man auf die Excel-Tabelle auch mit OleDB (kannte ich bisher nur von Acces) zugreifen kann. Aber ich weiß dann nicht wie ich dieses DataSet auslese (insofern die Daten dort überhaupt angekommen sind).
-
Also mein hinzugefügter Code sieht folgendermaßen aus:
(die namespaces sind am Anfang)private: void Form1_Load(Object^ sender, EventArgs^ e) { OleDbConnection ^verbindung; OleDbDataAdapter ^kommando; DataSet ^datset = gcnew DataSet(); verbindung = gcnew OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=C:\\myData.XLS;Extended Properties=Excel 8.0;"); kommando = gcnew OleDbDataAdapter("select * from [Tabelle2$A1:A3]", verbindung); verbindung->Open(); kommando->Fill(datset); verbindung->Close(); }Den Code habe ich aus der internen Hilfe (ein wenig umgeformt und vereinfacht).
Auf jeden Fall läuft das Programm.Um ehrlich zu sein weiß ich aber nicht was das 'kommando->Fill(datset);' bewirkt.

-
Schau Dir mal die ODBC Varianten an. Die sind wirklich simpel.
-
Also ich bin jetzt weiter gekommen. Ich habe nach ODBC gesucht und OleDB gefunden.

Wenn ich fertig bin poste ich noch die Lösung.
-
Straight und Simple!
http://www.codeproject.com/KB/database/excel_odbc.aspx
http://www.codeproject.com/KB/database/excel_odbc_write.aspx