EMZETT.
Login

CSV

Kurz: Ein einfaches Textformat für Tabellen, bei dem jede Zeile ein Datensatz ist und die Werte durch ein Trennzeichen (meist Komma oder Semikolon) getrennt sind.

Genauer: CSV steht für „Comma-Separated Values“. Fast jedes Programm von Excel bis zur Datenbank kann CSV lesen und schreiben, deshalb eignet es sich zum Austausch von Tabellendaten. Eine einheitliche, verbindliche Norm gibt es nur als Empfehlung (RFC 4180), in der Praxis weichen Programme voneinander ab.

Im Detail

Aufbau

name,alter,stadt
Anna,24,Berlin
"Müller, Jan",31,"Köln"

Die erste Zeile enthält oft die Spaltennamen (Kopfzeile). Enthält ein Wert das Trennzeichen, einen Zeilenumbruch oder Anführungszeichen, wird er in Anführungszeichen gesetzt; ein Anführungszeichen im Wert wird verdoppelt ("Er sagte ""Hallo""").

Komma oder Semikolon?

Im englischen Sprachraum ist das Komma üblich, im deutschen Excel dagegen das Semikolon, weil das Komma dort das Dezimaltrennzeichen ist (3,14). Eine CSV-Datei „sieht deshalb falsch aus“, wenn sie mit dem falschen Trennzeichen geöffnet wird. Beim Import deshalb das Trennzeichen wählen oder die Textkodierung angeben.

Kodierung

Umlaute werden nur dann richtig angezeigt, wenn Datei und Programm dieselbe Kodierung verwenden. Empfohlen ist UTF-8; manche Excel-Versionen erkennen es nur mit einer Kennung am Dateianfang (BOM). Sonst erscheinen Zeichen wie ä statt ä.

Grenzen

CSV kennt keine Datentypen: 007 kann zur Zahl 7 werden, ein Datum wird je nach Einstellung umgedeutet. Es gibt keine verschachtelten Daten (dafür taugt JSON) und keine Formeln oder Formatierungen. Bei Excel kann ein Wert, der mit =, +, - oder @ beginnt, als Formel ausgeführt werden („CSV-Injection“). Daten aus unbekannter Quelle sollte man deshalb vor dem Öffnen prüfen oder die Werte als Text importieren.

Wann CSV, wann etwas anderes?

CSV ist ideal für flache Tabellen und große Datenmengen, weil man Zeile für Zeile lesen kann. Sobald Daten verschachtelt sind oder Typen und Beschreibungen wichtig werden, sind JSON, YAML oder eine Datenbank besser.

Siehe auch: Excel, JSON, YAML, Unicode