OLE-DB Verbindung mit Excel

Aus Asprova Hilfe
Wechseln zu: Navigation, Suche
Hilfe Nummer: 757700
Übersicht Datenimport und -export

Arbeitsschritte

Die Verwendung der Option OLE-DB für Datenimport- und -exporteinstellungen ermöglicht zum Datenaustausch mit Excel.

Datenquelle

Setzen Sie in den Schnittstelleneinstellungen für das Schnittstellenobjekt "OLE DB" als [Datenquelle].

Provider

Wählen Sie im über [Verzeichnis/Datenbank] geöffneten Dialogfenster "Microsoft Office xx.0 Access Database Engine OLE DB Provider" aus und klicken dann auf [Weiter >>].
Dbio-excel01.jpg

Dateipfad

Datenquelle: Geben Sie nun Pfad und Dateinamen der Excel-Datei ein, zu der Sie eine Verbindung erstellen möchten.
Dbio-excel02.jpg

Erweiterte Eigenschaften

Setzen Sie nun unter der Registerkarte [Alle] die Version der Excel-Datei im Feld [Extended Properties].

Dbio-excel03.jpg
Version der
Excel-Datei
Excels interne
Versionsnummer
Einzugebender
Wert
Excel 2016 16 Excel 12.0
Excel 2013 15 Excel 12.0
Excel 2010 14 Excel 12.0
Excel 2007 12 Excel 12.0
Excel 2003 11 Excel 8.0
Excel 2002 10 Excel 8.0
Excel 2000 9 Excel 8.0
Excel 97 8 Excel 7.0
Excel 95 7 Excel 5.0

So wie die Excel-Version können Sie auch weitere Attribute im Feld [Extended Properties] eingeben:
Wert Bedeutung
HDR Definiert ob die erste Zeile Spaltenköpfe oder Daten enthält.
 Yes Daten der erste Reihe, die im Excel-Tabellenblatt Werte enthält, werden als Spaltenköpfe interpretiert.
Leeren Zellen in dieser Zeile werden automatisch generierte Feldnamen "F1", "F2", etc. zugewiesen.
 Nein Feldnamen werden automatisch erstellt, beginnend mit "F1", "F2", etc.
MAXSCANROWS Bestimmt automatisch den Datentyp der Daten in Excel. Legen Sie die Anzahl der zu prüfenden Zeilen (von 1 - 16) fest. Standardmäßig werden die ersten acht Zeichen für die Bestimmung betrachtet. Nachdem alle Zeilen geprüft wurden, wird der jeweils häufigste Datentyp ausgewählt.
Ist MAXSCANROWS nicht definiert, wird [TypeGuessRows] des Registry-Schlüssels HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel verwendet, um die Anzahl der zu prüfenden Zeilen zu bestimmen. Der Standardwert beträgt hier 8. Wird 0 eingegeben, werden alle Zeilen überprüft.

Für eine Excel 2016 Datei mit Spaltenköpfen würde der folgende String als Wert für [Extended Properties] genutzt:
Excel 12.0;HDR=Yes

Excel07.png

Externe Tabelle

Wurden diese Einstellungen vorgenommen und eine Verbindung zu Excel hergestellt, so kann das zu verwendende Tabellenblatt auf die herkömmliche Weise in der Eigenschaft [Externer Tabellenname] des DBIO-Objekts ausgewählt werden. Neben Tabellenblättern können auch benannte Zellbereiche als externe Tabelle dienen. Tabellenblattnamen enthalten ein Dollarzeichen am Ende ihres Namens (z.B. "Tabelle1$"), Zellbereiche aber nicht.
Innerhalb eines Tabellenblattes können Verbindungen zu mehreren benannten Zellbereichen hergestellt werden. Zellbereiche werden komplett importiert, selbst wenn keine Daten enthalten sind. Es kann also sein, dass leere Zeilen importiert werden. Um dies zu vermeiden, kann FValid(ME.Code) als [Externe Importfilterformel] gesetzt werden.

Weitere Einstellungen

Die weiteren Einstellungen ([Field-Mapping] etc.) entsprechen denen anderer OLE DB-Verbindungen.

Spaltenköpfe

Abhängig von [Extended Properties], können in Excel-Dateien Spaltenköpfe verwendet werden.

Mit Spaltenköpfen

HDR=Yes - In der Excel-Datei werden Spaltenköpfe erwartet. Die erste Zeile mit Daten wird als Spaltenköpfe interpretiert.

Excel-Datei [Field-Mapping]
Excel01.png Excel02.png
1. Leere Zeilen werden übersprungen
2. Diese Zeile wird für die Spaltenköpfe genutzt

Leeren Zellen in der Spaltenkopfzeile werden automatisch generierte Feldnamen "F1", "F2", etc. zugewiesen.

Excel-Datei [Field-Mapping]
Excel03.png Excel04.png
Feldname für leere Zelle wird automatisch gesetzt

Ohne Spaltenköpfe

HDR=No- In der Excel-Datei werden keine Spaltenköpfe erwartet. Die erste Spalte mit Daten wird als das erste Datenfeld interpretiert, bis zur letzten Spalte mit darin enthaltenen Daten. Feldnamen werden automatisch erstellt, beginnend mit "F1", "F2", etc.

Excel-Datei [Field-Mapping]
Excel06.png
Da keine Spaltenköpfe erwartet werden, werden Feldnamen automatisch erstellt.

Einschränkungen

  • Da die SQL-Befehle DELETE (Datensatz löschen) und DROP (Tabelle löschen) nicht unterstützt werden, wird der Wert der Eigenschaft [Tabelle vor Export leeren] ignoriert.
  • Die SQL-Befehle COMMIT und ROLLBACK werden nicht unterstützt.
  • Während eines Exports, bei dem Daten hinzugefügt werden, werden die neuen Daten immer ans Ende von bestehenden Daten gesetzt. Dabei können Fehler auftreten, wenn durch die hinzugefügten Zeilen die maximale Anzahl an Zeilen in Excel überschritten wird.
Version der Excel-Datei Maximale Zeilenanzahl Maximale Spaltenanzahl
Excel 2007 und neuer 1.048.576 16.384
Excel 97-2003 65.535 256
Excel 95 und älter 16.384 256
Ist ein Name zu lang, so tritt ebenso ein Fehler auf.
  • Die Daten werden automatisch untersucht, um den Datentyp des jeweiligen Feldes zu bestimmen. Normalerweise werden hierfür die ersten acht Zeilen betrachtet und der häufigste Datentyp ausgewählt.
    • Unter [Erweitere Eigenschaften] können Sie einen Eintrag "MAXSCANROWS" hinzufügen und einen Wert von 1 bis 16 für die Anzahl der zu betrachtenden Zeilen setzen.
    • Ansonsten wir der Wert von "TypeGuessRows" des Registrierungsschlüssels HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel genutzt. Der Standardwert ist hier 8, setzen können Sie Werte zwischen 1 und 16. Wenn Sie 0 setzen, werden alle Zeilen betrachtet.
    • Gibt es unterschiedliche Datentypen in einem Feld, so können Sie unter [Erweitere Eigenschaften] können Sie einen Eintrag "IMAEX=1 hinzufügen. Dies erzwingt die Nutzung von "ImportMixedTypes=Text" des Registrierungsschlüssels HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel. Allerdings kann es dabei zu unerwünschten Ergebnissen kommen.
  • Bei Verbindungen zu Excel werden Passwörter nicht unterstützt.
  • Sie können Verbindungen zu Arbeitsmappen oder benannten Bereichen erstellen.
    • Auf den Namen von Arbeitsmappen folgt das Dollarzeichen ("$").
    • Sie können Verbindungen zu mehreren benanntnen Bereichen der gleichen Arbeitsmappe erstellen.
    • Bei benannten Bereichen werden immer der gesamte Bereich importiert, auch wenn dort keine Daten enthalten sind. Um den Import leerer Zeilen zu verhindern, setzen Sie die [Interne Importfilterformel] auf FValid(ME.Code).
      Moreover, because of the tail information of the output rows, so far, is available in Excel, this information is exported so that the rows are added.

Verbindungen zu XLSX-Dateien

  • Nutzen Sie den OLE DB Provider "Microsoft Office 12.0 Access Databese Engine OLE DB Provider".
  • Der entsprechende Registrierungsschlüssel ist HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel.

Hilfe Nummer: 757700