CSV
Dateiendung: .csv
MIME-Type: text/csv


Das Dateiformat CSV steht für englisch Comma-separated values (seltener Character-separated values[1]) und beschreibt den Aufbau einer Textdatei zur Speicherung oder zum Austausch einfach strukturierter Daten. Die Dateinamenserweiterung lautet .csv.

Ein allgemeiner Standard für das Dateiformat CSV existiert nicht, jedoch wird es im RFC 4180[2] grundlegend beschrieben; es existiert auch der neuere Standard RFC 7111.[3] Die zu verwendende Zeichenkodierung ist ebenso wenig festgelegt; 7-Bit-ASCII-Code gilt weithin als der kleinste gemeinsame Nenner.

In CSV-Dateien können Tabellen oder eine Liste unterschiedlich langer Listen abgebildet werden.

Als Alternative zum CSV-Format wurde früher auch das Simple Data Format (SDF) verwendet.

Kompliziertere, beispielsweise geschachtelte Datenstrukturen können durch zusätzliche Regeln oder in verketteten CSV-Dateien gespeichert werden. Um sie in einer Datei abzuspeichern, eignen sich jedoch andere Formate wie JSON, XML oder EDIFACT besser.

Dateiaufbau

[Bearbeiten | Quelltext bearbeiten]

Innerhalb der Textdatei haben einige Zeichen eine Sonderfunktion zur Strukturierung der Daten.

Der erste Datensatz kann ein Kopfdatensatz sein, der die Spaltennamen definiert.

Jeder Datensatz sollte laut RFC 4180,[4] Absatz 2, Punkt 4 die gleiche Anzahl Spalten enthalten – dies wird aber nicht immer eingehalten.

Wird für die Trennung der Datenfelder das Tabulatorzeichen verwendet, wird das Dateiformat auch als TSV (englisch Tab-separated values) bezeichnet. Es hat den Vorteil, dass Tabulatorzeichen in der Regel nicht in den Nutzdaten vorkommen. Kommen auch keine Zeilenumbrüche darin vor, erübrigt sich die Verwendung eines Feldbegrenzers. TSV kommt oft beim Austausch von Daten zwischen Tabellenkalkulations- und sonstigen Programmen über die Zwischenablage zum Einsatz.

Formatierung der Datenfelder

[Bearbeiten | Quelltext bearbeiten]

Die Formatierung der Daten selbst ist nicht festgelegt. Das bedeutet, dass die verwendeten Formate zwischen den beteiligten Benutzern abgesprochen werden müssen. Besonders davon betroffen sind:

Beispiele: Ist 04/03/02 der 4. März 2002, der 3. April 2002, der 2. März 2004 oder ein ganz anderer Wert? Entspricht 8:09 „morgens neun Minuten nach acht“, „20 Uhr 09“ oder ist es eine „Dauer von 8 Minuten und 9 Sekunden“?

Software

[Bearbeiten | Quelltext bearbeiten]

Anwendungen

[Bearbeiten | Quelltext bearbeiten]

Beispiel

[Bearbeiten | Quelltext bearbeiten]

Der folgende Quelltext einer CSV-Datei, mit dem Komma (,) als Feldtrennzeichen und Zeilenumbruch (CR LF) als Datensatz-Trennzeichen sowie mit Spaltenüberschriften in der ersten Zeile:

Stunde,Montag,Dienstag,Mittwoch,Donnerstag,Freitag
1,Mathematik,Deutsch,Englisch,Erdkunde,Politik
2,Sport,Deutsch,Englisch,Sport,Geschichte
3,Sport,"Religion (ev., kath.)",Kunst,,Kunst

repräsentiert die folgende Tabelle:

Stunde Montag Dienstag Mittwoch Donnerstag Freitag
1 Mathematik Deutsch Englisch Erdkunde Politik
2 Sport Deutsch Englisch Sport Geschichte
3 Sport Religion (ev., kath.) Kunst Kunst

In diesem Beispiel werden die Anführungszeichen verwendet, um das Komma zwischen ev. und kath. in der letzten Zeile als Text zu kennzeichnen. Das dritte Element dieser Zeile lautet also Religion (ev., kath.). Außerdem werden alle ASCII-Zeichen in Form des 8-Bit-Zeichensatzes ISO 8859-1 verarbeitet.

Normen und Standards

[Bearbeiten | Quelltext bearbeiten]

Das Dateiformat CSV ist auch als Request for Comments (RFC) spezifiziert:

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Dirk Louis, Peter Müller: Das Java 6 Codebook. Pearson Education, 2007, ISBN 978-3-8273-2465-8, S. 259: „Die häufigste Variation ist der Austausch des Kommas durch ein anderes Trennzeichen, weswegen CSV oft auch als Akronym für Character Separated Values verstanden wird“
  2. RFC 4180 – Common Format and MIME Type for Comma-Separated Values (CSV) Files. Oktober 2005 (englisch).
  3. Michael Hausenblas, Erik Wilde, Jeni Tennison: URI Fragment Identifiers for the text/csv Media Type. RFC 7111. Internet Engineering Task Force, Januar 2014 (ietf.org [abgerufen am 23. Juli 2024]).
  4. RFC 4180 – Common Format and MIME Type for Comma-Separated Values (CSV) Files. Oktober 2005 (englisch).
  5. fgetcsv. PHP-Handbuch.