Freigeben über


Excel-Quelle

Die Excel-Quelle extrahiert Daten aus Arbeitsblättern oder Bereichen in Microsoft Excel-Arbeitsmappen.

Die Excel-Quelle stellt vier verschiedene Datenzugriffsmodi zum Extrahieren von Daten bereit:

  • Eine Tabelle oder Sicht.

  • Eine in einer Variablen angegebene Tabelle oder Sicht.

  • Die Ergebnisse einer SQL-Anweisung. Bei der Abfrage kann es sich um eine parametrisierte Abfrage handeln.

  • Die Ergebnisse einer SQL-Anweisung, die in einer Variablen gespeichert ist.

Von Bedeutung

In Excel entspricht ein Arbeitsblatt oder bereich einer Tabelle oder Ansicht. Die Liste der verfügbaren Tabellen in den Excel-Quell- und Ziel-Editoren zeigt vorhandene Arbeitsblätter an (identifiziert durch das an den Arbeitsblattnamen angefügte $-Zeichen, z. B. Sheet1$) und benannte Bereiche (identifiziert durch das Fehlen des $-Zeichens, z. B. MyRange). Weitere Informationen finden Sie im Abschnitt "Überlegungen zur Verwendung".

Die Excel-Quelle verwendet einen Excel-Verbindungs-Manager zum Herstellen einer Verbindung mit einer Datenquelle. Dieser Verbindungs-Manager gibt die zu verwendende Arbeitsmappendatei an. Weitere Informationen finden Sie unter Excel Connection Manager.

Die Excel-Quelle weist eine reguläre Ausgabe und eine Fehlerausgabe auf.

Überlegungen zur Verwendung

Der Excel-Verbindungs-Manager verwendet den Microsoft OLE DB-Anbieter für Jet 4.0 und den unterstützenden Excel ISAM-Treiber (Indizierte sequenzielle Access-Methode), um Daten in Excel-Datenquellen zu verbinden und zu lesen und zu schreiben.

Viele vorhandene Microsoft Knowledge Base-Artikel dokumentieren das Verhalten dieses Anbieters und Treibers, und obwohl diese Artikel nicht spezifisch für Integration Services oder seine Vorgänger data Transformation Services sind, sollten Sie sich über bestimmte Verhaltensweisen informieren, die zu unerwarteten Ergebnissen führen können. Allgemeine Informationen zur Verwendung und zum Verhalten des Excel-Treibers finden Sie unter HOWTO: Verwenden von ADO mit Excel-Daten aus Visual Basic oder VBA.

Die folgenden Verhaltensweisen des Jet-Anbieters mit dem Excel-Treiber können beim Lesen von Daten aus einer Excel-Datenquelle zu unerwarteten Ergebnissen führen.

  • Datenquellen: Die Datenquelle in einer Excel-Arbeitsmappe kann ein Arbeitsblatt sein, an das das $-Zeichen angefügt werden muss (z. B. Sheet1$) oder einen benannten Bereich (z. B. MyRange). In einer SQL-Anweisung muss der Name eines Arbeitsblatts durch Trennzeichen (z. B. [Sheet1$]) getrennt werden, um einen durch das $-Zeichen verursachten Syntaxfehler zu vermeiden. Der Abfrage-Generator fügt diese Trennzeichen automatisch hinzu. Wenn Sie ein Arbeitsblatt oder einen Bereich angeben, liest der Treiber den zusammenhängenden Zellblock ab der ersten nicht leeren Zelle in der oberen linken Ecke des Arbeitsblatts oder Bereichs. Daher können Sie keine leeren Zeilen in den Quelldaten oder eine leere Zeile zwischen Titel- oder Kopfzeilen und den Datenzeilen haben.

  • Fehlende Werte. Der Excel-Treiber liest eine bestimmte Anzahl von Zeilen (standardmäßig 8 Zeilen) in der angegebenen Quelle, um den Datentyp jeder Spalte zu erraten. Wenn eine Spalte offensichtlich gemischte Datentypen enthält, insbesondere eine Mischung aus numerischen Daten und Textdaten, entscheidet der Treiber zugunsten des Mehrheitsdatentyps und gibt in Zellen mit Daten des anderen Datentyps NULL-Werte zurück. (In einer unentschiedenen Situation hat der numerische Datentyp Vorrang.) Die meisten Zellenformatierungsoptionen im Excel-Arbeitsblatt scheinen keinen Einfluss auf diese Datentypfestlegung zu haben. Sie können dieses Verhalten des Excel-Treibers ändern, indem Sie den Importmodus angeben. Um den Importmodus anzugeben, fügen Sie IMEX=1 zum Wert der Erweiterten Eigenschaften im Verbindungsstring des Excel-Verbindungs-Managers im Eigenschaftenfenster hinzu. Weitere Informationen finden Sie unter PRB: Excel-Werte, die mit DAO OpenRecordset als NULL zurückgegeben wurden.

  • Abgeschnittener Text. Wenn der Anbieter bestimmt, dass eine Excel-Spalte Textdaten enthält, wählt der Treiber den Datentyp (string- oder memo-Datentyp) auf Basis des längsten Werts, der als Stichprobe genommenen wird. Wenn der Treiber in den als Stichprobe genommenen Zeilen keine Werte mit mehr als 255 Zeichen findet, wird die Spalte nicht als Memospalte, sondern als Zeichenfolgenspalte mit 255 Zeichen behandelt. Deshalb können Werte, die länger als 255 Zeichen sind, abgeschnitten werden. Wenn Sie Daten aus einer Memospalte ohne Abschneiden importieren möchten, müssen Sie sicherstellen, dass die Memospalte in mindestens einer der beispielierten Zeilen einen Wert enthält, der länger als 255 Zeichen ist, oder Sie müssen die Anzahl der vom Treiber abgefragten Zeilen erhöhen, um eine solche Zeile einzuschließen. Sie können die Anzahl der Zeilen erhöhen, indem Sie den Wert von TypeGuessRows im Registry-Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel erhöhen. Weitere Informationen finden Sie unter PRB: Übertragung von Daten aus Jet 4.0 OLEDB Source schlägt fehl.

  • Datentypen. Der Excel-Treiber erkennt nur einen begrenzten Satz von Datentypen. Beispielsweise werden alle numerischen Spalten als Werte mit doppelter Genauigkeit (DT_R8) interpretiert, und alle Zeichenfolgenspalten (außer Memospalten) werden als Unicode-Zeichenfolgen mit 255 Zeichen (DT_WSTR) interpretiert. Integration Services ordnet die Excel-Datentypen wie folgt zu:

    • Numerisch: Gleitkommawert mit doppelter Genauigkeit (DT_R8)

    • Währung: Währung (DT_CY)

    • Boolesch: Boolesch (DT_BOOL)

    • Datum/Uhrzeit - datetime (DT_DATE)

    • Zeichenfolge: Unicode-Zeichenfolge, Länge 255 (DT_WSTR)

    • Memo: Unicode-Textdatenstrom (DT_NTEXT)

  • Datentyp- und Längenkonvertierungen. Integration Services konvertiert datentypen nicht implizit. Daher müssen Sie möglicherweise abgeleitete Spalten- oder Datenkonvertierungstransformationen verwenden, um Excel-Daten explizit zu konvertieren, bevor Sie sie in ein Nicht-Excel-Ziel laden oder Nicht-Excel-Daten konvertieren, bevor Sie sie in ein Excel-Ziel laden. In diesem Fall kann es hilfreich sein, das anfängliche Paket mithilfe des Import- und Export-Assistenten zu erstellen, der die erforderlichen Konvertierungen für Sie konfiguriert. Einige Beispiele für die Konvertierungen, die erforderlich sein können, sind die folgenden:

    • Konvertierung zwischen Unicode Excel-Zeichenfolgenspalten und Nicht-Unicode-Zeichenfolgenspalten mit bestimmten Codeseiten

    • Konvertierung zwischen 255-stelligen Excel-Zeichenfolgenspalten und Zeichenfolgenspalten unterschiedlicher Länge

    • Konvertierung zwischen numerischen Excel-Spalten mit doppelter Genauigkeit und numerischen Spalten anderer Typen

Konfiguration der Excel-Quelle

Sie können Eigenschaften mit dem SSIS -Designer oder programmgesteuert festlegen.

Wenn Sie weitere Informationen zu den Eigenschaften erhalten möchten, die Sie im Dialogfeld "Excel-Quell-Editor " festlegen können, klicken Sie auf eines der folgenden Themen:

Das Dialogfeld Erweiterter Editor enthält alle Eigenschaften, die programmgesteuert festgelegt werden können. Klicken Sie auf eines der folgenden Themen, um weitere Informationen zu den Eigenschaften zu erhalten, die Sie im Dialogfeld Erweiterter Editor oder programmgesteuert festlegen können:

Informationen zum Durchlaufen einer Gruppe von Excel-Dateien finden Sie unter Schleife durch Excel-Dateien und Tabellen mit einem Foreach-Schleifencontainer.