Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 100.000 Datensätze verarbeitet werden!

Mit Excel CSV importieren und exportieren

Mit diesem Artikel wollen wird die Mythen und Probleme Rund um den Excel CSV Datenimport / Datenexport aufklären und wie die Excel CSV Verarbeitung einfacher durchgeführt werden kann. Angefangen bei der Erklärung was eigentlich eine CSV Datei ist und warum CSV Dateien erstmal nichts mit Excel zu tun haben, auch wenn anscheinend Microsoft hier anderer Meinung ist.

Weiter geht es mit den Problemen die im Zusammenhang mit Excel und CSV Dateien auftreten können. Speziell wird hier auf das Thema Datenformatierung wie Zahlen, Datumsangaben, etc. näher eingegangen.

Dann wird erklärt wie das EXCEL <-> CSV Importieren / Exportieren mit dem FlowHeater bzw. dem TextFile Adapter und dem Excel Adapter durchgeführt werden kann. Anschließend wird aufgezeigt wie eine größere Excel Datenmenge für den CSV Export eingeschränkt werden kann. Zum Schluss wird noch erklärt wie Datensätze/Zeilen in einer Excel Arbeitsmappe während eines CSV Datenimport aktualisiert (UPDATE) werden können.

Inhaltsverzeichnis



Was ist eine CSV Datei

Einfache CSV TextdateiEinfache CSV TextdateiEine CSV Datei ist erstmal nichts anders als eine einfache Textdatei ohne weitere Metadaten zur Formatierungen wie Schriftart, Datentypen, Feldlängen, oder ähnlichen. Pro Zeile kann so ein separater Datensatz dargestellt werden wobei die einzelnen Felder durch ein Trennzeichen voneinander getrennt werden. Man hört leider immer noch, dass die Codierung (Encoding) einer CSV Textdatei auf US ASCII (Codepage 437) beschränkt ist. Dem ist natürlich nicht so, Sie können jede beliebige Codierung (Encoding) verwenden. Mittlerweile wird hier auch UTF-8 verwendet, was ein Maximum an Sonderzeichen und Umlauten zulässt. Auch ist die Dateiendung nicht unbedingt auf „.csv“ festgelegt, entscheidend ist der Inhalt. Für den Datenaustausch müssen sich beide Parteien nur einigen, was letztendlich verwendet werden soll.

Das CSV Trennzeichen

Als Feld Trennzeichen wurde Ursprünglich das Komma (engl. Comma) verwendet. Daher auch der Name CSV (Comma Separated Values). Da in nicht US Ländern andere Dezimaltrennzeichen als der Punkt verwendet werden, wird hier teilweise auch ein anderes Trennzeichen verwendet. In Deutschland ist das z.B. ein Strichpunkt (Semikolon). Welches Trennzeichen Sie verwenden bleibt im Prinzip Ihnen überlassen, hier gilt wie oben beschrieben, beide Parteien müssen sich für den Datenaustausch einig sein.

Hinweis: Sie können das Standard Listentrennzeichen unter Windows in der Systemsteuerung einstellen. Das in der Systemsteuerung angegebene Listentrennzeichen verwendet der FlowHeater Standardmäßig als Default Einstellung beim Erstellen einer neuen Datenimport/Datenexport Definition. Das zu verwendende CSV Listentrennzeichen, kann nachträglich natürlich jederzeit, in den FlowHeater Adapter Formateinstellungen, geändert werden.

Was ist wenn das CSV Trennzeichen im Feldinhalt vorkommt?

Das kann natürlich vorkommen und würde, falls nicht behandelt, zu Feldverschiebungen führen. Dieses Problem kann dadurch gelöst werden, indem Feldinhalte mit einem Textbegrenzungszeichen umschlossen werden. Hier werden oft Hochkommas verwendet, es gehen aber auch beliebig andere Zeichen als Textbegrenzer. Wie schon erwähnt, müssen beide Parteien, sich für den Datenaustausch lediglich abstimmen.

            z.B. "Text mit , Komma im Feldinhalt","…"

So werden beim Einlesen nur zwei Spalten eingelesen und nicht drei.

Was ist, wenn jetzt auch noch der Textbegrenzer im Feldinhalt vorkommt?

In diesem Fall muss der Textbegrenzer zusätzlich maskiert bzw. gequotet werden. Hierzu wird der Textbegrenzer einfach im Text doppelt verwendet.

            z.B. "Text mit "","" Komma im Feldinhalt","…"

Beim Einlesen wird so der doppelte Feldbegrenzer erkannt und aus dem Feldinhalt jeweils einmalig entfernt. Gelesen wird solange bis das eigentliche CSV Spaltentrennzeichen nach einem abschließenden Textbegrenzer, der nicht gequotet ist, gefunden wird. Der Feldinhalt des ersten Feldes wird so zu "Text mit "," Komma im Feldinhalt"

Hinweis: Durch die Verwendung von Textbegrenzern kann sich ein Feldinhalt auch über mehrere Zeilen erstrecken. Allerdings kommen aber einige Programme beim Lesen solcher CSV Dateien, deren Inhalt sich über mehrere Zeilen erstreckt, durcheinander!


Probleme beim Excel CSV Import/Export

Excel Beispiel - fehlerhafte FormatierungExcel Beispiel - fehlerhafte FormatierungDas eigentliche Problem ist, sobald Microsoft Excel auf dem Rechner installiert ist, wird die Dateiendung „.csv“ mit der Excel Anwendung verknüpft. Als Dateisymbol wird auch noch das Excel Anwendungssymbol verwendet, was vielen nun suggeriert, dass CSV gleich Excel ist, was natürlich nicht so ist. Wenn es nur darum geht mal eben schnell den Inhalt einer CSV Datei anzuzeigen kann Excel eingeschränkt dazu verwendet werden. Klar muss aber sein, dass Excel teilweise versucht, CSV Felder anhand der automatischen Datentyperkennung, zu formatieren. So kann es sein, dass ein Zahlenwert einer CSV Datei in Excel als Datum angezeigt wird. In anderen Fällen werden Nachkommastellen abgeschnitten, etc.
Viel schlimmer wird es, wenn versucht wird, die Inhalte einer CSV Datei, in Excel zu verändern und erneut zu speichern. Hier zerstören Sie in den allermeisten Fällen das abgestimmte Format der CSV Datei und diese kann anschließend mit anderen Programmen nicht mehr sauber weiterverarbeitet werden.

Der FlowHeater bzw. der TextFile Adapter bietet hier einige leistungsfähige Mechanismen an, damit ein abgestimmtes Format einer CSV Datei immer gleich interpretiert wird, mehr weiter unten.


Der eigentliche Excel CSV Import/Export mit dem FlowHeater

Das ist die Paradedisziplin vom FlowHeater. Der FlowHeater wurde genau aus den oben erwähnte Gründen entwickelt um solche Probleme, die bei der EXCEL/CSV Verarbeitung auftreten, zu vermeiden. Ziel war es, sich über eine Datenformatierung nur einmalig Gedanken machen zu müssen. Anschließend stellt der FlowHeater Sicher, dass ein abgestimmtes Format beibehalten wird. Da wir in einer globalisierten Welt leben, funktioniert eine gespeicherte FlowHeater Definition auch Länderübergreifend mit anderen Gebietsschemen/Regionen bzgl. möglicher unterschiedlicher Zahlen- und/oder Datumsformatierungen. Der FlowHeater bietet dazu die Möglichkeit sämtliche auf einem System zur Verfügung stehenden Gebietsschemen zu verwenden. Nach Auswahl kann das Gebietsschema weiter an die benötigen Gegebenheiten angepasst werden. Die so erstellte FlowHeater Definition (.fhd) funktioniert nun überall gleich.

Um nun eine CSV Datei in eine Excel Arbeitsmappe zu importieren oder aber von einer Excel Tabelle eine CSV Datei zu erstellen legen Sie eine neue FlowHeater Definition an und wählen auf der READ und WRITE Seite die benötigen Adapter aus.

z.B. mit

          READ TextFile Adapter und WRITE Excel Adapter Importieren Sie eine CSV Datei in eine Excel Arbeitsmappe

sowie umgekehrt mit

          READ Excel Adapter und WRITE TextFile Adapter exportieren bzw. erstellen Sie aus einer Excel Tabelle eine CSV Datei

Das Vorgehen ist immer das gleiche, als erstes wählen Sie die benötigten Adapter aus. Anschließend müssen die Adapter konfiguriert und das gewünschte Format angepasst werden. Da Excel mit Datentypen was anfangen kann, ist es nur notwendig für den TextFile Adapter ein passendes Format festzulegen. In den Format Einstellungen vom TextFile Adapter geben Sie lediglich an wie eine Zahl, ein Datum bzw. Zeitangaben aussehen sollen bzw. wie diese in der CSV Datei vorliegen. Wenn Sie nun im Excel Adapter für die einzelnen Spalten die entsprechenden Datentypen (Zeichenkette, Ganzzahl, Zahl mit Nachkommastellen, Datum, Zeit, etc.) richtig zuweisen werden automatisch die Feldinhalte anhand der gemachten Vorgaben umgewandelt und gesetzt.

Im FlowHeater Download Archiv finden Sie dazu zwei entsprechende Beispiele: Excel-CSV-exportieren.fhd und Excel-CSV-importieren.fhd.


Wie kann nur eine bestimmte Teilmenge in eine CSV Datei exportiert werden?

Hierzu bietet der FlowHeater die Möglichkeit „WENN-DANN-SONST bzw. IF-THEN-ELSE“ Bedingungen zu definieren. Zusammen mit einem Filter kann die zu exportierende Datenmenge, während der Ausführung, individuell eingeschränkt werden. In der CSV Datei landen so nur die, auf Basis der definierten Filterbedingung, gewünschten Datensätze. Um z.B. einen CSV Export anhand eines Datums einzuschränken, das in einem bestimmten Datumsbereich liegt, gehen Sie folgendermaßen vor.

Excel CSV Export - FilterbedingungExcel CSV Export - FilterbedingungLegen Sie zuerst eine neue Definition an und wählen auf der READ Seite den Excel Adapter und auf der WRITE Seite den TextFile Adapter aus. Die beiden Adapter werden erstmal so konfiguriert, als ob Sie die komplette Datenmenge in eine CSV Datei exportieren möchten. Wenn das gemacht wurde benötigen Sie einen IF-THEN-ELSE (Wenn-Dann-Sonst) Heater für die Filterbedingung sowie einen Filter Heater, der Anhand des Booleschen Ergebnisses die Daten, während der Verarbeitung, dynamisch aus der Excel Datenquelle herausfiltert. Ziehen Sie die Excel Spalte, die das Datum beinhaltet nachdem gefiltert werden soll, auf den IF-THEN-ELSE Heater. Anhand dieser Spalte definieren wir nun eine Bedingung, siehe Bild.

          <01.01.2021 ODER >31.12.2021

Achtung: Das hier eingegebene Datum muss den Adapter Formateinstellungen entsprechen. Nur so ist sichergestellt, dass der Wert richtig in ein Datum umgewandelt werden kann.

Den Ausgang der Bedingung verbinden Sie nun noch mit dem Filter Heater. Mit dieser Filterbedingung und dem verbundenen Filter Heater, werden Excel Zeilen die vor und nach 2021 im Datum stehen haben von der Verarbeitung ausgeschlossen. In der CSV Datei landen so nur, anhand der gemachten Filterbedingung, gefilterte Datensätze.

Im FlowHeater Download Archiv finden Sie dazu das Beispiel: Excel-CSV-Export-Teilmenge.fhd


Wie können während eines CSV Importes Excel Zeilen aktualisiert werden?

Excel CSV Update - Schlüsselfelder definierenExcel CSV Update - Schlüsselfelder definierenHier bietet der FlowHeater, bzw. der Excel Adapter die Möglichkeit, Schlüsselfelder zu definieren. Diese Schlüsselfelder werden dazu verwendet, passende bzw. bereits vorhandene Zeilen/Datensätze in einer Excel Arbeitsmappe zu identifizieren. Wird anhand dieser Schlüsselfelder, ein passender Datensatz gefunden, wird diese Zeile aktualisiert. Werden mehrere Zeilen/Datensätze in der Excel Arbeitsmappe gefunden, werden natürlich alle passende Datensätze aktualisiert. So können, ähnlich einem SQL Datenbank UPDATE, per CSV Import, Datensätze in einer Excel Arbeitsmappe aktualisiert werden. Der Excel Adapter unterstützt natürlich, falls gewünscht, beides gleichzeitig. Wird kein passender Datensatz gefunden wird so eine neue Zeile an die Excel Arbeitsmappe angefügt. Das Excel CSV Import Verhalten kann individuell an Ihre Bedürfnisse angepasst werden. Wie oben bereits erwähnt, wird über den TextFile Adapter sichergestellt, dass die CSV Felder immer gleich anhand der gemachten Formateinstellungen interpretiert werden.

Im FlowHeater Download Archiv finden Sie dazu das Beispiel: Excel-CSV-Import-mit-aktualisieren.fhd

Fazit

Der Excel CSV Import/Export bleibt weiterhin eine Herausforderung. Mit den von Microsoft Excel angebotenen Funktionen ist es nur schwer möglich CSV Dateien sauber und ohne Änderungen der Formatierung zu verarbeiten. Der FlowHeater bietet hier Leistungsfähige Mechanismen an um die EXCEL CSV Verarbeitung mit geringen Arbeitsaufwand zu erledigen. Bei Fragen dazu, stehen wir Ihnen jederzeit gerne über das kostenlose Support Forum  zur Verfügung.


Weiterführende Links


 
Microsoft®, Windows®, Excel® sind eingetragene Markenzeichen der Microsoft Corporation