Liste Neuigkeiten Hintergrundartikel Kommentare Programmieren/Java IT-Sicherheit Computer Ratgeber & Tipps

CSV-Dateien verstehen: Was - Wofür - Wie

Hinzugefügt am 01.02.2023 von Frank Hissen

Der Umgang mit CSV-Dateien ist für viele Alltag, die einen Datenaustausch - sei er vollautomatisch oder semiautomatisch - zwischen verschiedenen IT-Systemen realisieren müssen. CSV-Dateien sind dabei nicht der einzige Lösungsweg, jedoch sehr verbreitet. Dies betrifft z.B. Online-Händler, um etwa die aktuellen Bestellungen von eBay in der eigenen Warenwirtschaft einzulesen (Import) oder die Buchhaltung, welche etwa Steuerauswertungen im Elster-CSV-Format exportiert (z.B. OSS, USt.).

CSV steht ursprünglich für "comma-separated values", zu Deutsch also "Komma-getrennte Werte", was eine sehr generische Formulierung ist, dem universellen Praxiseinsatz von CSV-Dateien aber auch genau entspricht. Wenngleich heute die Separierung mit Kommas eher seltener vorkommt. Aber z.B. die Standard-Elster-CSV-Formate für die Umsatzsteuermeldung über das Elster-Portal sind Komma-separiert.
Jeder, der eine Excel- oder Datenbank-Tabelle schon mal gesehen hat, weiß im Grunde schon, was eine CSV-Datei beinhaltet. Nämlich genau eine Tabelle. Diese enthält meist eine, nämlich die erste, Zeile mit den Spaltenüberschriften oder Feldnamen, was aber nicht zwingend erforderlich ist, wenn klar definiert ist, welche Spalte welche Daten enthält bzw. welche Reihenfolge die Daten haben.

'Definiert' meint hier, dass sich die austauschenden Systeme auf ein bestimmtes Format festgelegt haben. Die grundsätzlichen Eigenschaften einer CSV-Datei sind:

Zeichencodierung / Encoding und Spaltentrenner

Die Zeichencodierung / das Encoding automatisch zu detektieren ist in der Praxis sehr fehleranfällig, weshalb beim Import von CSV-Dateien üblicherweise angegeben wird, welche Kombination aus Zeichencodierung (und Spaltentrenner) in der CSV-Datei verwendet wird.
Deutsche Umlaute sind ein gutes Beispiel. Generell können z.B. durch UTF-8 sämtliche Alphabete der Welt sicher übertragen werden. Wurde jedoch beim Export oder Import der CSV-Datei das Encoding falsch gesetzt, kommt es in Feldern zu typischen Zeichenfehlern wie "ä" statt eines "ä" oder "ß" statt eines "ß". Hier kann es auch zu nicht-darstellbaren Zeichen kommen.

Da gängige Daten z.B. Kommas enthalten können, ist der Tabulator (TAB) ein besseres Trennzeichen für CSV-Dateien, um Verarbeitungsproblemen aus dem Weg zu gehen. TABs sind in Feldern wie Namen, Straßenangaben oder Artikelbeschreibungen i.d.R. nicht enthalten. Alternativ sind auch Zeichensequenzen als Trenner möglich.

Import/Export: Scriptierung & Automatisierung

In diesem Artikel geht es zwar um den Datenaustausch mittels CSV-Dateien, es soll aber angemerkt werden, dass vollautomatisierte Datenabläufe üblicherweise über Schnittstellen, z.B. APIs, JSON- oder XML-Webservices, realisiert werden. Hier befindet man sich auf der Ebene von integrierten, programmierten Abläufen, die wohldefinierten Standards folgen. Die eigentlichen Daten werden somit direkt ausgetauscht, der Austausch selbst ist für den Anwender nicht mehr sichtbar.

Wenn auf Dateiebene gearbeitet wird, können durchaus auch JSON- oder XML-Dateien verwendet werden. Diese werden jedoch in der Regel ausschließlich über Scripte und integrierte Programme erzeugt, nicht über Excel oder Libre/OpenOffice. JSON und XML können ebenfalls Tabellen abbilden, jedoch zusätzlich auch Daten in Baumstrukturen, was in einigen Fällen zur Vorteilen führt.

Der Vorteil von CSV-Dateien - sofern das Format verstanden und definiert wurde - ist deren Einfachheit, sowohl im Umgang als auch in der Beschaffenheit. Desktop-Anwendungen, die sehr nahe mit dem CSV-Format verbunden sind und dieses auch verarbeiten, d.h., Einlesen und Exportieren können, sind Microsoft Excel und LibreOffice Calc bzw. OpenOffice Calc.
Beim Austausch zwischen Systemen werden CSV-Dateien meist per Anwendung (z.B. eBay, Paypal, Afterbuy etc.), Datenbank-Script oder sonstigen Programmen generiert bzw. eingelesen. Auch die Datenmengen (z.B. Anzahl der Datensätze, also Zeilen) dürfen in CSV-Dateien sehr groß sein, sofern die Dateien effizient (z.B. zeilenweise) in einer Anwendung eingelesen werden.

Auch wenn es bei den betreffenden Systemen keine direkte Ex-/Import-Funktion geben sollte, so lässt mit dem Zugang zur Datenbank i.d.R. eine solche Funktion extern nachrüsten.

Umgang mit CSV-Dateien: Beispiele

Auch wenn Excel als Tabellenkalkulation ein sehr mächtiges Tool ist, ist der saubere Import von CSV-Dateien in unterschiedlichen Formaten nicht immer leicht zu bewerkstelligen. Libre/OpenOffice Calc hingegen bietet einen sehr einfachen Importdialog, um CSV-Dateien korrekt einzulesen und somit auch zu bearbeiten und im richtigen Format wieder speichern zu können. Es soll darauf hingewiesen werden, dass Libre/OpenOffice problemlos parallel zu MS-Office und Excel installiert werden kann und Excel auch weiterhin das Standardprogramm zur Verarbeitung von Excel- und CSV-Dateien bleibt. So kann man sich gefahrlos die bessere Verarbeitung von CSV in Libre/OpenOffice zunutze machen oder Libre/OpenOffice einfach mal ausprobieren.

Im Folgenden zeige ich eine Standard-CSV-Datei von Paypal. Es handelt sich um einen Paypal-Bericht, der aktuelle Bestellungen und Zahlungen enthält, z.B. zur Weiterverarbeitung im lokalen Warenwirtschafts- und Buchhaltungssystem. Dieser kann in der Berichtssektion auf der Paypalseite einfach generiert werden. Im Beispiel nutze ich Windows 11 mit installiertem LibreOffice.

Hier sieht man die CSV-Datei im Windows-Explorer. Auf diesem System ist kein Excel installiert, dies ist aber für die gezeigte Vorgehensweise unerheblich.

Blog - Understand CSV Files

Mit der rechten Maustaste auf die Datei geklickt, wird das Kontextmenü geöffnet. Unter "Öffnen mit..." kann man nun andere Programme zum Öffnen der CSV-Datei verwenden als das Standardprogramm:

Blog - Understand CSV Files

Im ersten Schritt schauen wir uns die Datei einfach mal mit dem Windows-Editor/Notepad an:

Blog - Understand CSV Files

Auf den ersten Blick sieht die Anzeige halbwegs strukturiert aus, bei den ausgeblendeten Personendaten jedoch wird schnell ersichtlich, dass die Anordnung mit Tabs im simplen Editor keine gute Lesbarkeit der Datei hervorruft. Jedoch können hier einfache Änderungen an der Datei vorgenommen werden, sofern man keine Tabs löscht:

Blog - Understand CSV Files

Die gleiche Datei in SciTE, einem Open-Source-Editor, mit Einblendung aller Steuerzeichen. Hier erkennt man, dass zwischen den Spalten keine Leerzeichen / Spaces sind, sondern Tabulatorzeichen:

Blog - Understand CSV Files

Am Ende jeder Zeile sieht man auch die Kombination aus "Carriage Return" und "Line Feed":

Blog - Understand CSV Files

Nun öffnen wir die Datei in LibreOffice. LibreOffice Calc erkennt, dass es sich weder um eine Excel- noch eine OpenDocument-Datei handelt und startet den Importfilterdialog. Hier sieht man schön, wie man für einen sauberen Import Encoding und Trennzeichen festlegen kann, und man erhält eine Vorschau, wie die Datei geparst - also importiert - werden wird:

Blog - Understand CSV Files

Geöffnet kann man nun die CSV-Datei nicht mehr von einer Excel-Datei unterscheiden. LibreOffice Calc erlaubt hier nun auch Änderungen und speichert automatisch im gewählten CSV-Format aus dem Import. Im "Speichern unter..."-Menü lässt sich so auch jede geöffnete Excel-Datei in CSV exportieren!

Blog - Understand CSV Files

Blog - Understand CSV Files

Blog - Understand CSV Files

CSV-Beispieldatei und Anwendungsbeispiel

Eine Beispieldatei in Excel mit passendem CSV-Gegenstück wie sie von unserer Software "PaketConnector" genutzt wird, finden Sie hier: Desktop-PaketConnector. Beim Import von CSV-Dateien verwenden wir das Format "UTF-8 mit TABs".

Über HissenIT

HissenIT bietet ein Spektrum aus fertigen Produkten und bewährten Lösungen sowie individuelle Softwareentwicklung. Beispielsweise entwickeln wir Web-Services oder binden diese an oder bauen Schnittstellen und Automatisierungstechniken, z.B. für den Datenimport/export.
Mit unseren hauseigenen Produkten wie InvoiceCreator und PaketConnector bieten wir einsatzbereite Software für die Erzeugung von Rechnungen, Lieferscheinen, Dokumenten allgemein und den Kauf von DHL-Versandlabels. Auch können diese Produkte als Basis für Individualsoftware oder Anpassungen dienen.

Keywords

CSV, Dateien, Daten, Datenimport, Datenexport, Datenaustausch, Automatisierung, Schnittstellen/Interfaces, Script, Generierung, Tabellen, Datenbanken, API, Webservice, eBay, Amazon, eCommerce, Warenwirtschaft, Wawi, ERP, Shop, Shopsystem

Kategorien: Hintergrundartikel Programmieren/Java Computer Ratgeber & Tipps


Kommentare

Eigenen Kommentar hinzufügen

Teilen / Weiterempfehlen

Wenn Sie diese Seite gut finden, teilen Sie es doch ihren Kontakten mit:

Mail Facebook Twitter Pinterest LinkedIn
reddit Digg StumbleUpon XING
WhatsApp Telegram