CSV (Dateiformat)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Entwickler fehltVorlage:Infobox Dateiformat/Wartung/Art fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt

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

Das Dateiformat CSV steht für englisch Comma-separated values (seltener Character-separated values, da das Trennzeichen nicht zwingend ein Komma sein muss)[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 grundlegend beschrieben. Die zu verwendende Zeichenkodierung ist ebenso wenig festgelegt; 7-Bit-ASCII gilt weithin als der kleinste gemeinsame Nenner.

In CSV-Dateien können Tabellen oder eine Liste unterschiedlich langer Listen abgebildet werden. 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 XML oder EDI besser.

Dateiaufbau[Bearbeiten]

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

  • Ein Zeichen wird zur Trennung von Datensätzen benutzt. Dies ist in der Regel der Zeilenumbruch des dateierzeugenden Betriebssystems – bei dem Betriebssystem Windows sind es in der Praxis oft tatsächlich zwei Zeichen.
  • Ein Zeichen wird zur Trennung von Datenfeldern (Spalten) innerhalb der Datensätze benutzt. Allgemein wird dafür das Komma eingesetzt. Abhängig von beteiligter Software und Benutzereinstellungen sind auch Semikolon, Doppelpunkt, Tabulator, Leerzeichen oder andere Zeichen üblich.
  • Um Sonderzeichen innerhalb der Daten nutzen zu können (z. B. Komma in Dezimalzahlwerten), wird ein Feldbegrenzerzeichen (auch: Textbegrenzungszeichen) benutzt. Normalerweise ist dieser Feldbegrenzer das Anführungszeichen ". Wenn der Feldbegrenzer selbst in den Daten enthalten ist, wird dieser im Datenfeld verdoppelt (siehe Maskierungszeichen).

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

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

Formatierung der Datenfelder[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:

  • Datums- und Zeitangaben
    • Die Reihenfolge der Einzelangaben (Jahr, Monat, Tag, Stunde, Minute, Sekunde, ...) kann nicht immer eindeutig erkannt werden.
    • Erschwerend kommt dazu, dass insbesondere bei Datumsangaben national unterschiedliche Trennzeichen genutzt werden.
    • Die harmloseste Hürde in diesem Fall ist, dass die Zahlenwerte mit und ohne führende Null vorkommen.

Beispiele: Ist 04/03/02 der 4. März 1902, 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“?

  • Texte
    • Im Gegensatz zu XML sieht CSV keinen Vermerk des benutzten Zeichensatzes innerhalb der Datei vor. Die verwendete Zeichencodierung sollte zwischen allen Beteiligten im Vorfeld festgelegt werden.
  • Zahlenwerte
    • Nach der ursprünglichen Vorgabe für das CSV-Datenformat können Zahlenfelder mit fester Mindestbreite verwendet werden. Dann werden Zahlenwerte mit führenden Nullen ergänzt, um die Mindestbreite zu erhalten.
    • In verschiedenen Ländern haben sich unterschiedliche Dezimal- und Tausendertrennzeichen etabliert. Über Ländergrenzen hinweg können diese Zeichen sogar gegensätzlich benutzt werden.
    • Manchmal wird kein Tausendertrennzeichen eingesetzt.
    • Die Formatfülle von Währungsangaben ist unüberschaubar.
  • Leerfeld
    • Der Feldinhalt "" wird manchmal als leerer Inhalt und manchmal als einzelnes Anführungszeichen interpretiert.

Besonderheiten beim Import[Bearbeiten]

Die CSV-Dateien werden nicht immer auf die gleiche Art und Weise von denselben Tabellenkalkulationsprogrammen interpretiert:

  • Microsoft Excel
    • Öffnen durch Importieren aus Textdatei
      • Spaltenbreite wird an den Inhalt angepasst
      • Trennzeichen kann im Importdialog gewählt werden
    • Öffnen durch Doppelklick
      • Alle Spalten haben die gleiche Breite
      • Trennzeichen ist Semikolon, wenn die CSV-Datei nach ANSI-Norm gespeichert ist
      • Trennzeichen kann aber auch das Komma sein. Das hängt von den Region- und Spracheneinstellungen von Windows ab.
        • Das Trennzeichen kann auch mit 'sep=<Trennzeichen>' in der ersten Zeile der .csv Datei explizit angegeben werden, z.B. 'sep=,' für Komma oder 'sep=;' für das Semikolon etc.
      • Trennzeichen ist Tabulator, wenn die CSV-Datei in Unicode-Format gespeichert ist
  • OpenOffice.org Calc
    • Ähnlich wie bei Microsoft Excel
    • Importdialog wird auch aufgerufen, wenn Daten über Zwischenablage eingefügt werden sollen.

Berechnungen[Bearbeiten]

Das CSV-Format beschreibt zeilenweise miteinander verknüpfte Datensätze. Berechnungen sind nicht vorgesehen, dennoch akzeptieren viele Programme wie LibreOffice Calc, OpenOffice.org Calc, Excel und Gnumeric entsprechende Rechenausdrücke. Diese orientieren sich am jeweiligen Programm. Für die genannten Programme funktioniert beispielsweise folgende (erste) Zeile:

100;200;=A1+B1

Je nach Sprachumgebung können auch benannte Funktionen verwendet werden.

Software[Bearbeiten]

Anwendungen[Bearbeiten]

Beispiel[Bearbeiten]

Der folgende Quelltext einer CSV-Datei, mit dem Semikolon (;) als Trennzeichen sowie mit Spaltenüberschriften in der ersten Zeile:

Stunde;Montag;Dienstag;Mittwoch;Donnerstag;Freitag
1;Mathe;Deutsch;Englisch;Mathe;Kunst
2;Sport;Französisch;Geschichte;Sport;Geschichte
3;Sport;"Religion ev;kath";Kunst;;Kunst

repräsentiert die folgende Tabelle:

Stunde Montag Dienstag Mittwoch Donnerstag Freitag
1 Mathe Deutsch Englisch Mathe Kunst
2 Sport Französisch Geschichte Sport Geschichte
3 Sport Religion ev;kath Kunst Kunst

In diesem Beispiel werden die Anführungszeichen verwendet, um das Semikolon zwischen ev und kath in der letzten Zeile als Text zu kennzeichnen. Das dritte Element dieser Zeile lautet also Religion ev;kath.

Weblinks[Bearbeiten]

  • RFC 4180 – RFC-Spezifikation des Dateiformates CSV

Einzelnachweise[Bearbeiten]

  1. Dirk Louis, Peter Müller: Das Java 6 Codebook, Pearson Education, 2007, ISBN 3-8273-2465-3, 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“