Festlegen, ob in der ersten Zeile die Spaltennamen hinterlegt sind
Folgende Excelversionen werden unterstützt:
- Excel
3.0
- Excel 4.0
- Excel 5.0
- Excel 97 bis 2003
Die Datenquelle ist immer ein Arbeitsblatt (Schreibweise: Sheet1$).
Genauso ist es möglich einen benannten Bereich anzugeben; hier wird nur der Name des benannten Bereiches ohne Zusätze verwendet.
Auch das festlegen eines Ausschnittes innerhalb eines Excelarbeitsblattes ist mit der Schreibweise Sheet1$A1:B10 möglich.
Bei der Verwendung dieser Schreibweisen muss bei der Verwendung einer SQL Select Anweisung der Ausdruck in eckigen Klammern (zum Beispiel [Sheet1$] oder [Sheet1$A1:B30]) geschrieben werden.
Bitte achten Sie darauf, wenn die Excelmappe mit einem deutschen Excel erstellt wurde, heißt die Bezeichnung für ein Arbeitsblatt nicht Sheet sondern Tabelle.
Bei der ersten leeren Zeile im Datenbereich wird die Verarbeitung beendet. Deshalb dürfen zwischen den Spaltenköpfen und den Daten keine Leerzeilen vorhanden sein.
Der Excel Treiber unterstützt ausschließlich folgende Datentypen:
| Datentyp | SSIS Datentype |
| Numeric | Gleitkommawert mit doppelter Genauigkeit (DT_R8) |
| Währung | Curreny (DT_CY) |
| Boolean | Boolean (DT_BOOL) |
| Datum/Zeit | Datum (DT_DATE) |
| String | Unicode string, Länge 255 (DT_WSTR) |
| Memo | Unicode Text Stream (DT_NTEXT) |
Standardmäßig liest der Exceltreiber die ersten acht Zeilen und stellt so den Datentyp fest. Diese Einstellung kann nur durch einen Eintrag in der Registry geändert werden. Entsprechende Informationen finden Sie in englisch
hier. Die automatische Übersetzung des Artikels in deutsch ist
leider kaum zu gebrauchen.
Wenn in eine Spalte gemischte Datentypen beinhalten, so kann der Excel Verbindungsmanger nicht verwendet werden. In diesem Fall muss der OLE DB Verbindungsmanger verwendet werden. Der entsprechende Connection String sieht wie folgt aus:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Mappe1.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1" HDR=Yes - deutet, dass in der ersten Zeile die Spaltenüberschriften stehen; sind keine Spaltenüberschriften vorhanden so wird No angegeben
IMEX=1 - bedeutet, dass alle Spalten im Textformat, sprich in einen Unicodestring mit der Länge von 255, eingelesen werden
Zusätzliche Informationen finden Sie hier.
Excel 2007
Falls Sie bereits mit Excel 2007 arbeiten können Sie nicht die Excel
Datenquelle oder das Excel Datenziel von SSIS verwenden.
Das trifft auch dann zu, wenn Sie das
Service Pack 2 für den SQL Server 2005 eingespielt haben.
Hier bleibt nur die Möglichkeit, einen OLE DB Verbindungsmanager zu
verwenden. Der Connection String sieht wie folgt aus:
Provider=Microsoft.ACE.OLEDB.12.0;Extended
Properties="Excel 12.0 Xml;HDR=YES;IMEX=2";
Damit ist es dann möglich aus und nach Excel 2007 bis zu 1 Million
Zeilen zu verarbeiten. Die bisherigen Einschränkungen und Fallstricke
bleiben erhalten.
Bitte achten Sie darauf, dass auf jeder Maschine, auf
der das entsprechende SSIS Paket ausgeführt wird, dieser OLE DB Treiber
installiert ist.
Hier können Sie den Treiber herunterladen.
Excelmappen können ausschließlich im 32-Bit Modus
verarbeitet werden, da der Treiber nur das 32-Bit Betriebssystem zur
Verfügung steht.