Excel Dateien automatisch generieren mit Daten aus Datenbank

caimy

Grünschnabel
Hallo,

ich würde gerne eine Schleife laufen lassen die mir Datensätze aus der Datenbank holt und dann jeweils in eine Excel-Datei schreibt die ich auch gerne noch vorformatieren würde
kennt jemand dazu ein Tutorial oder ähnliche Hilfen?
Danke
 
weil ich da nicht mehrere Tabellenblätter in eine Mappe bekomme und nichts vorformatieren kann
 
weil ich da nicht mehrere Tabellenblätter in eine Mappe bekomme und nichts vorformatieren kann

Zu dem mit den Tabellenblättern: Das ist gelogen!

Visual Basic:
Dim strSQL As String
strSQL = "SELECT * INTO [Excel 8.0;Database=" & App.Path & _ 
    "\book1.xls].[Sheet1] FROM Customers"
cnSrc.Execute strSQL

In einem SELECT INTO kannst du durchaus mehrere Tabellenblätter exportieren.

Was das Vorformatieren betrifft: Du hast ja in deiner DB ja fertig definierte Datentypen je DB-Feld. Wenn ich mich recht erinner, werden diese Datentypen mit in die Excel übernommen. Also Text als Text, Double als Double usw.

Wenn du aber wirklich die Formatierung ändern willst, wirste an ner Schleife (wie von dir ursprünglich gefragt) nicht vorbekommen, jedoch muss dir klar sein, dass du definitiv Performance verlieren wirst.
 
Performance ist erstmal zweitrangig, Hauptsache es funktioniert
an einer Schleife werde ich sowieso nicht vorbeikommen da in einem Rutsch gleich mehrere Excel-Dateien erstellt werden sollen
 
Ich kenn mich in .NET nicht aus, nur in VB6, aber unter deinen Vorgaben würde ich es so machen:

Verweis auf die Excel-Objekt-Bibliothek
Zur Laufzeit ein neues Workbook hinzufügen
Aktives Tabellenblatt auswählen
In der Schleife dann:
Die Zellen formatieren
Aus deinem Recordset die Daten in die entsprechenden Zellen schreiben
Schleife zu Ende
Aufräumarbeiten (Recordset auf Nothing, Workbook zu machen usw.)

Nur wie gesagt würde es mir im Traum nicht einfallen, für nen einfachen Export nach Excel soviel Zeilen Code zu schreiben (und zu debuggen) wenn effektiv eine Zeile Code ausreicht und die Arbeit vom Treiber bzw. der dbEngine übernommen werden kann
 
wenn ich das per select into macht ist das doch nichtmal eine richtige Excel-Datei sondern nur eine Art CSV
 
Wie kommst du denn da drauf? Mach doch einfach mal nen Test, dann siehste ja, was für ne Datei du bekommst.
 
hab ich schon lange, und wenn ich die Datei die dabei rauskommt öffne sagt mir mein Excel die Datei ist anders als die Dateiendung (.xls) es vermuten lassen würde -> weil es eigentlich nur eine csv ist
woher soll denn mysql auch wissen wie man eine xls korrekt aufbaut?
 
Zurück