itrain-home  
home
 Aktuelle Seite:  knowhow sql transfer dts excelexport.asp 
 



 

Export von SQL Server Daten in ein Excel Worksheet

In diesem Tutorial erfahren Sie, wie Daten aus einer SQL Server Tabelle in ein Excel Worksheet exportiert werden können.

In diesem Beispiel sollen die Daten täglich aus einer SQL Server Tabelle in ein Excel-Arbeitsblatt übernommen werden. Im Excel-Arbeitsblatt sollen jeweils nur die Daten des aktuellen Tages angezeigt werden, die Formatierungen im Excel-Arbeitsblatt sollen jedoch beibehalten werden.

Zum Nachverfolgen des Tutorials benötigen Sie:

  • Microsoft SQL Server 2000 (oder 7.0)
  • Microsoft Excel 97, 2000 oder XP

Übersicht

In diesem Tutorial werden die folgende Schritt durchgeführt:

  1. Erstellen einer neuen, leeren Excel-Arbeitsmappe
  2. Erstellen eines neuen DTS-Pakets
  3. Hinzufügen einer Verbindung zum SQL-Server
  4. Hinzufügen einer Verbindung zur Excel-Arbeitsmappe
  5. Hinzufügen eines Task zum Transformieren/Kopieren der Daten
  6. Festlegen der Transformationen
  7. Testen des Exports
  8. Hinzufügen von Tasks zum Initialisieren des Arbeitsblatts
  9. Festlegen des Workflows im Paket
  10. Ausführen des Pakets

Erstellen einer leeren Excel-Arbeitsmappe

Um Daten in ein Excel-Arbeitsblatt exportieren zu können, muss zunächst eine Excel-Arbeitsmappe (.XLS-Datei) erstellt werden. Dieser Schritt kann entweder direkt im Windows-Explorer über den Menüpunkt "Datei", "Neu", "Microsoft Excel-Arbeitsblatt" ausgeführt werden. Sie können natürlich auch Excel mit einer neuen leeren Arbeitsmappe starten und diese dann speichern.

Für das Beispiel wird eine Arbeitsmappe mit dem Namen "DTSUmsatz1997.XLS" erzeugt. Falls Sie die Arbeitsmappe mit Excel erstellt haben, denken Sie daran, die Mappe zu schließen, bevor Sie mit den nächsten Schritten weitermachen.


Erstellen eines neuen DTS-Pakets

Wählen Sie um SQL Server Enterprise Manager den Unterpunkt "Data Transformation Services", "Lokale Pakete" aus und öffnen Sie das Kontextmenü. Wählen Sie den Punkt "Neues Paket" aus. Der DTS Designer wird geöffnet.


Hinzufügen einer SQL Server Verbindung

Ziehen Sie aus der Werkzeugleiste "Verbindung" eine Verbindung vom Typ "SQL OLEDB Provider for SQL Server" Icon: SQLOLEDB Provider for SQL Serverin den Arbeitsbereich des Designers.

Geben Sie im Feld "Neue Verbindung" den Namen "Northwind auf (lokal)" ein. Wählen Sie im Feld "Server" den gewünschten SQL Server aus (für das Beispiel wird hier der lokale SQL Server verwendet). Wählen Sie anschließend in der Auswahlliste "Datenbank" die Datenbank "Northwind" aus.

Klicken Sie auf "OK", um die Einstellungen zu übernehmen.

Festlegen der Verbindungseigenschaften (SQL Server)


Erstellen einer Verbindung zur Excel-Arbeitsmappe

Ziehen Sie aus der Werkzeugleiste Verbindung eine Verbindung vom Typ "Microsoft Excel" Icon: Microsoft Excelin den Arbeitsbereich des Designers.

Geben Sie im Feld "Neue Verbindung" "DTSUmsatz1997" als Name für die Verbindung ein. Im Feld "Dateiname" wird der Name (incl. Pfad) der im ersten Schritt erstellten Excel-Datei angegeben.

Bestätigen Sie Ihre Eingaben mit "OK".

Festlegen der Verbindungseigenschaften (Excel)


Hinzufügen eines Tasks vom Typ "Daten transformieren"

Klicken Sie in der Werkzeugleiste "Task" auf das Icon für "Daten transformieren" .

Der Mauszeiger verändert sein Aussehen. Klicken Sie nun zunächst auf die im zweiten Schritt erstellte SQL Server Verbindung mit dem Namen "Northwind auf (lokal)".

Der Mauszeiger ändert das Aussehen. Klicken Sie nun auf die Excel-Verbindung "DTSUmsatz1997", um das Ziel festzulegen.


Festlegen der Transformationen

Nachdem Quelle und Ziel für die Transformation festgelegt sind wird das Task durch einen Pfeil im Designer angezeigt. Durch einen Doppelklick auf den Pfeil können Sie nun die Eigenschaften des Tasks festlegen.

Geben Sie auf der Registerseite "Quelle" als Beschreibung für das Task "Umsätze übernehmen" ein. In der Auswahlliste "Tabelle/Sicht" wird anschließend die Sicht "[Northwind].[dbo].[Product Sales for 1997]" ausgewählt.

Wechseln Sie anschließend auf die Registerseite "Ziel".

Da in der Excel-Arbeitsmappe noch kein entsprechendes Arbeitsblatt für die Daten vorhanden ist, muss die "Zieltabelle" zuerst erstellt werden.

Klicken Sie auf die Schaltfläche "Erstellen". Es erscheint ein Dialogfenster mit der SQL-Anweisung zum Erstellen des Arbeitsblatts. Geben Sie in diesem Feld die folgende "CREATE TABLE"-Anweisung ein:

CREATE TABLE Umsatz1997
(Kategorie varchar(15),
 Produkt varchar(40),
 Umsatz money)

Markieren Sie den kompletten Text der "CREATE TABLE"-Anweisung und kopieren Sie den Inhalt in die Zwischenablage (diese SQL-Anweisung wird später noch einmal gebraucht).

Klicken Sie anschließend auf "OK", um das Arbeitsblatt zu erstellen.

Wechseln Sie anschließend auf die Registerseite "Transformationen". Der DTS-Designer erstellt automatisch entsprechende Transformationen zwischen Quell- und Zielspalten.

Klicken Sie auf "OK", um die Änderungen zu übernehmen.


Erster Test des Pakets

Sie können jetzt das Paket testen. Speichern Sie dazu am Besten das Paket zunächst und wählen Sie dann den Menüpunkt "Paket", "Ausführen", um den Export zu starten.


c

Prüfen des Exports

Jetzt kann des Ergebnis des Exports in Excel überprüft werden. Öffnen Sie die Arbeitsmappe "DTSUmsatz1997.xls" mit Excel und prüfen Sie die Ausgabe im Arbeitsblatt "Umsatz1997". Die Standard-Arbeitsblätter "Tabelle1" bis "Tabelle3" können jetzt gelöscht werden. ("Bearbeiten", "Blatt löschen").

Außerdem können Sie das Arbeitsblatt "Umsatz1997" formatieren (Schriftarten, Rahmen, etc.). Speichern Sie Ihre Änderungen.

Denken Sie daran die Arbeitsmappe wieder zu schließen, bevor Sie mit dem nächsten Schritt fortfahren.


Initialisieren des Arbeitsblatts

Wird das Paket erneut ausgeführt, wird der Inhalt des Arbeitsblatts nicht ersetzt, sondern die Zeilen werden einfach an die schon bestehenden Zeilen angehängt. In diesem Beispiel soll jedoch immer noch der aktuelle Stand der Daten angezeigt werden.

Für SQL Server Tabellen würde man mit einer "DELETE"- oder "TRUNCATE TABLE"-Anweisung die bereits bestehenden Zeilen einfach Löschen. Der Excel-Provider unterstützt diese Anweisungen jedoch nicht. Um die Tabelle/das Arbeitsblatt zu initialisieren muss daher ein "DROP TABLE" und anschließend eine erneute "CREATE TABLE"-Anweisung ausgeführt werden. Durch diese beiden Anweisungen wird bei Excel jedoch nur der Inhalt des Arbeitsblatts gelöscht. Die Spaltenüberschriften und die Formatierungen bleiben erhalten.

Ziehen Sie aus der Werkzeugleiste "Task" ein Task vom Typ "SQL ausführen" in den Arbeitsbereich des Designers. Geben Sie als Beschreibung "Inhalt Excel Tabelle löschen" ein.

Wählen Sie in der Auswahlliste "Vorhandene Verbindung" die Verbindung "DTSUmsatz1997" aus. Fügen Sie in das Feld "SQL-Anweisung" die Anweisung "DROP TABLE Umsatz1997" ein.

Ziehen Sie ein zweites Task vom Typ "SQL ausführen" in den Arbeitsbereich des Designers. Geben Sie als Beschreibung "Blatt initialisieren" ein und wählen Sie in der Auswahlliste "Vorhandene Verbindung" die Verbindung "DTSUmsatz1997" aus.

Geben Sie im Feld "SQL-Anweisung" die folgende "CREATE TABLE"-Anweisung ein (oder fügen Sie den Text aus der Zwischenablage ein):

CREATE TABLE Umsatz1997 (Kategorie varchar(15),
 Produkt varchar(40),
 Umsatz money)

Klicken Sie auf "OK", um die Änderungen zu übernehmen.


Festlegen des Workflows

Anschließend muss noch festgelegt werden, in welcher Reihenfolge die einzelnen Tasks durchgeführt werden sollen. Wählen Sie dazu zunächst das Task "Blatt initialisieren" aus und öffnen Sie das Kontextmenü. Wählen Sie im Menü "Workflow" den Unterpunkt "Workfloweigneschaften" aus.

Klicken Sie im Dialogfenster "Workfloweigenschaften" auf die Schaltfläche "Neu", um eine neue Rangfolge anzulegen. Wählen Sie in der Spalte "Quellschritt" das Task "Inhalt Excel Tabelle löschen" aus. Wählen Sie in der Spalte "Rangfolge" die Option "Beendigung" aus. Klicken Sie anschließend auf "OK", um die Änderungen zu übernehmen.

Wählen Sie nun durch einen einfachen Klick das Task "Excel Tabelle initialisieren" aus und klicken Sie anschließend mit gedrückter Strg-Taste auf die SQL Server Verbindung "Northwind auf (lokal)". Die beiden Icons sind jetzt markiert. Wählen Sie im Menü "Workflow" den Unterpunkt "Bei Erfolg" aus. Es wird ein grüner Pfeil im Designer hinzugefügt.


Ausführen des Pakets

Jetzt können Sie das Paket speichern und ausführen.

Bei jedem Export wird der Inhalt des Arbeitsblatts gelöscht und die aktuellen Daten werden exportiert. Alle Formatierungen bleiben erhalten.


Viel Erfolg beim Ausprobieren!


Fragen? Kritik? Fehler gefunden? Email an sql@itrain.de


Valid XHTML 1.0!

Leerraum

Dokument zum Drucken anzeigen
English Pages
Link-Tipp zum Thema "Internet": www.q-tek.com/Q-Asp/QAspDoc.htm

Tutorials und viele Beispiele zu ASP und client-seitigem Scripting.