CSV-Dateien erklärt: Trennzeichen, Anführungszeichen, Kodierung und Excel

Aktualisiert:

Eine CSV-Datei ist reiner Text: ein Datensatz pro Zeile, die Werte durch Kommas getrennt. Fast jede Datenbank, Tabellenkalkulation und jeder Onlinedienst kann sie exportieren, deshalb ist sie der übliche Weg, eine Tabelle von einem Programm ins andere zu bringen. Sie geht aber auch leicht schief, denn CSV war lange in Gebrauch, bevor jemand es aufschrieb, und Programme sind sich bei den Details bis heute nicht einig.

Dieser Teil der Reihe behandelt die Regeln von CSV, Probleme mit Trennzeichen und Anführungszeichen, die Werte an der falschen Stelle teilen, die Zeichenkodierung, was Tabellenkalkulationen beim Öffnen einer Datei ändern, und ein Risiko, das Sie kennen sollten, wenn Sie Daten exportieren, die andere öffnen.

Die Regeln, die CSV tatsächlich hat

Einen einzigen offiziellen Standard gibt es nicht. Am nächsten kommt RFC 4180 vom Oktober 2005, das das von den meisten Programmen verwendete Format beschreibt und den Medientyp text/csv registriert. Es ist ein informatives Dokument, kein Internetstandard, und legt diese Regeln fest:

Alles andere ist unterschiedlich. Die Library of Congress der USA, die Dateiformate für die Langzeitarchivierung beschreibt, nennt häufige Abweichungen: Semikolons statt Kommas, Zeilenumbrüche nur mit LF oder nur mit CR, Backslashes oder einfache Anführungszeichen statt doppelter und unterschiedlicher Umgang mit Leerzeichen. Eine Datei kann daher für das Programm, das sie geschrieben hat, gültiges CSV sein und von einem anderen trotzdem falsch gelesen werden.

Kommas, Semikolons und Tabulatoren

Wo das Komma das Dezimaltrennzeichen ist, wie in weiten Teilen Europas und Südamerikas, würde ein Komma zwischen den Werten mit Zahlen wie 1,20 kollidieren. Dort erstellte Dateien verwenden daher oft ein Semikolon. Excel folgt den Regionaleinstellungen des Computers: Laut Microsoft verwendet Excel das Semikolon als Listentrennzeichen, wenn das Dezimaltrennzeichen ein Komma ist.

Das ist der übliche Grund, warum eine Datei mit allem in der ersten Spalte öffnet: Sie wurde mit einem Trennzeichen geschrieben und mit einem anderen gelesen. Dieselbe Tabelle mit Dezimalkomma im Preis (der Schrägstrich steht für einen Zeilenumbruch):

Durch Tabulatoren getrennte Dateien vermeiden das meiste davon, weil Tabulatoren selten in Werten vorkommen. Sie haben oft die Endung .tsv oder .txt statt .csv.

Anführungszeichen: die wichtigste Regel

Viele kaputte CSV-Dateien gehen auf einen Wert zurück, der Anführungszeichen gebraucht hätte und keine bekam, oder auf ein Anführungszeichen, das nie geschlossen wurde. Diese Beispiele folgen RFC 4180:

Wenn Sie selbst CSV schreiben, setzen Sie jeden Wert in Anführungszeichen, der das Trennzeichen, ein doppeltes Anführungszeichen oder einen Zeilenumbruch enthält, und verdoppeln Sie die Anführungszeichen darin. Alle Werte in Anführungszeichen zu setzen ist ebenfalls erlaubt und vermeidet Überraschungen.

Zeichenkodierung: warum aus Pão plötzlich Pão wird

Eine CSV-Datei sagt nichts über ihre Zeichenkodierung. RFC 4180 vermerkt, dass üblicherweise US-ASCII verwendet wird, das keine Buchstaben mit Akzenten kennt, und heute sind die meisten Dateien UTF-8. UTF-8 speichert Zeichen wie ã, é oder € in zwei oder drei Bytes. Ein Programm, das diese Bytes mit einer anderen Kodierung liest, etwa Windows-1252, zeigt jedes Byte als eigenes Zeichen:

Microsoft erklärt, dass Excel eine UTF-8-CSV per Doppelklick nur dann richtig öffnet, wenn die Datei mit einer Bytereihenfolge-Markierung (BOM) beginnt, drei unsichtbaren Bytes, die UTF-8 ankündigen. Fehlt sie, empfiehlt Microsoft, die Datei zu importieren, mit Daten > Aus Text/CSV. Sehen Sie dieses Durcheinander in einer selbst erstellten Datei, wurde sie in einer Kodierung gespeichert und in einer anderen geöffnet.

Was Tabellenkalkulationen beim Öffnen einer CSV ändern

Wenn Excel eine .csv-Datei direkt öffnet, errät es den Typ jedes Werts mit seinen Standardeinstellungen. Microsoft dokumentiert, was das mit Daten macht, die nur wie eine Zahl oder ein Datum aussehen:

Wert in der CSVNach dem Öffnen in ExcelWarum
0077Führende Nullen werden bei Zahlen entfernt.
12345678901234561234567890123450, in wissenschaftlicher SchreibweiseExcel speichert 15 signifikante Stellen; der Rest wird zu Nullen.
SEPT22-SepAls Datum gelesen (2. September).
MARCH11-MarAls Datum gelesen (1. März).

Die Änderungen bleiben, wenn die Datei erneut gespeichert wird. Die Gennamen in der Tabelle sind echte Beispiele: Eine Studie von 2016 in Genome Biology fand solche Umwandlungen in etwa einem Fünftel der Artikel, die Genlisten als Excel-Dateien veröffentlichten, und 2019 benannte das HUGO-Komitee für Gennomenklatur die Gene SEPT und MARCH deshalb in SEPTIN und MARCHF um. Postleitzahlen, Telefonnummern, Artikelnummern und lange Kennungen trifft es genauso.

Damit die Werte unverändert bleiben, importieren Sie die Datei, statt sie zu öffnen: Daten > Aus Text/CSV, dann Bearbeiten, um Power Query zu öffnen, die Spalten auswählen und ihren Datentyp auf Text setzen. Microsoft schlägt auch vor, die Datei vor dem Öffnen von .csv in .txt umzubenennen; dann erscheint der Textimport-Assistent, in dem Sie festlegen, wie jede Spalte gelesen wird. Neuere Versionen von Excel für Microsoft 365 und Excel 2024 haben außerdem Einstellungen zur automatischen Datenkonvertierung, mit denen sich einige dieser Änderungen abschalten lassen.

Ein Risiko beim Export: Formelinjektion

Tabellenkalkulationen können einen Wert, der mit =, +, - oder @ beginnt, als Formel lesen. Exportiert eine Website Text, den Nutzer eingegeben haben, etwa Namen oder Kommentare, kann ein als Formel geschriebener Wert beim Öffnen der Datei ausgeführt werden, statt als Text zu erscheinen. Der Katalog für Softwareschwachstellen von MITRE führt das als CWE-1236, bekannter als CSV- oder Formelinjektion.

Das betrifft Software, die CSV-Dateien aus nicht vertrauenswürdigen Eingaben schreibt. Die übliche Abwehr ist ein einfaches Anführungszeichen (') vor jedem Wert, der mit einem dieser Zeichen beginnt, wobei MITRE anmerkt, dass keine Lösung in jeder Tabellenkalkulation funktioniert. Erhalten Sie eine CSV aus unbekannter Quelle, sehen Sie sie in einem Texteditor an oder importieren Sie sie als Text, bevor Sie dem trauen, was eine Tabellenkalkulation anzeigt.

CSV oder JSON?

CSV ist eine flache Tabelle ohne Typen: Jeder Wert ist Text, bis ein Programm etwas anderes entscheidet. JSON, Thema des ersten Teils dieser Reihe, kennt Zahlen, true, false, null, Listen und verschachtelte Objekte. CSV ist kleiner und öffnet sich in jeder Tabellenkalkulation; JSON verwenden die meisten Web-APIs. Wer zwischen beiden umwandelt, muss entscheiden, was mit diesen Unterschieden geschieht.

Der nTools-Konverter behält jeden CSV-Wert als Text, sodass 007 und lange Kennungen unverändert ankommen, und schreibt verschachtelte JSON-Werte als JSON-Text in eine einzige Zelle. Er liest durch Kommas, Semikolons oder Tabulatoren getrennte Daten, folgt den obigen Regeln für Anführungszeichen, meldet ein nie geschlossenes Anführungszeichen und arbeitet vollständig in Ihrem Browser.

CSV ↔ JSON-Konverter

Häufige Fragen

Warum öffnet sich meine CSV mit allem in einer einzigen Spalte?

Die Datei verwendet ein anderes Trennzeichen als das, welches das Programm erwartet, meist Semikolons, die als Kommas gelesen werden, oder umgekehrt. Importieren Sie sie und wählen Sie das Trennzeichen, statt sie per Doppelklick zu öffnen.

Warum sind die Umlaute nach dem Öffnen einer CSV falsch?

Die Datei ist UTF-8 und wurde mit einer anderen Kodierung gelesen. Importieren Sie sie in Excel mit Daten > Aus Text/CSV, statt sie per Doppelklick zu öffnen, oder speichern Sie die Datei als UTF-8 mit Bytereihenfolge-Markierung.

Wie behalte ich führende Nullen, wenn ich eine CSV in Excel öffne?

Importieren Sie die Datei, statt sie per Doppelklick zu öffnen, und setzen Sie Spalten mit Codes, Postleitzahlen oder Telefonnummern vor dem Laden auf Text.

Kann eine CSV-Datei mehrere Blätter oder Formatierungen haben?

Nein. Sie enthält eine einzige Tabelle aus reinem Text. Wenn Sie eine Arbeitsmappe als CSV speichern, speichert Excel nur das aktuelle Blatt, und was reiner Text nicht fassen kann, etwa Formatierungen und Diagramme, geht verloren.

Ist eine durch Semikolons getrennte Datei noch eine CSV?

Streng genommen beschreibt RFC 4180 nur Kommas, aber Dateien mit Semikolons sind verbreitet, und die meisten Programme lesen sie, wenn Sie das Trennzeichen wählen.

Lädt der nTools-Konverter meine Daten hoch?

Nein. Die Umwandlung läuft in Ihrem Browser, und die Daten werden nirgendwohin gesendet.

Weiter in der Reihe Textkodierungen erklärt: UTF-8, Base64 und URL-Kodierung →

Quellen

  1. RFC 4180 — Common Format and MIME Type for Comma-Separated Values (CSV) Files
  2. Library of Congress — CSV, Comma Separated Values (RFC 4180)
  3. Microsoft Support — Import or export text (.txt or .csv) files
  4. Microsoft Support — Keeping leading zeros and large numbers
  5. Microsoft Support — Opening CSV UTF-8 files correctly in Excel
  6. Ziemann, Eren and El-Osta — Gene name errors are widespread in the scientific literature (Genome Biology, 2016)
  7. HUGO Gene Nomenclature Committee — Summer newsletter 2020
  8. MITRE — CWE-1236: Improper Neutralization of Formula Elements in a CSV File

Weitere Ratgeber