|
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:
- Erstellen einer neuen, leeren Excel-Arbeitsmappe
- Erstellen eines neuen DTS-Pakets
- Hinzufügen einer Verbindung zum SQL-Server
- Hinzufügen einer Verbindung zur Excel-Arbeitsmappe
- Hinzufügen eines Task zum Transformieren/Kopieren der Daten
- Festlegen der Transformationen
- Testen des Exports
- Hinzufügen von Tasks zum Initialisieren des Arbeitsblatts
- Festlegen des Workflows im Paket
- 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" in 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.

Erstellen einer Verbindung zur Excel-Arbeitsmappe
Ziehen Sie aus der Werkzeugleiste Verbindung eine Verbindung vom Typ "Microsoft Excel" in 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".

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
|