Möchte man Daten von einem System in ein anderes übernehmen, dann führt der Weg oft über CSV-Dateien. Solche CSV-Dateien können beispielsweise mit Microsoft Excel erstellt werden, indem man eine Excel-Tabelle im CSV-Format exportiert. Allerdings gibt es dabei immer wieder Probleme. In diesem Artikel werden zwei der häufigsten Stolpersteine behandelt: Trennzeichen und Sonderzeichen.
Was ist eine CSV-Datei?
CSV-Dateien sind eigentlich ganz normale Textdateien. Sie können deshalb mit jedem Text-Editor (z.B. Notepad für Windows oder TextEdit für macOS) gelesen und geschrieben werden. Öffnet man eine CSV-Datei, dann sieht ihr Inhalt ungefähr so aus:
Wie man unschwer erkennen kann, beginnt jeder Datensatz auf einer neuen Zeile, und die einzelnen Felder sind durch Kommas voneinander getrennt. Das ist bereits alles, was das CSV-Formats ausmacht, denn CSV steht schlicht und einfach für Comma-Separated Values (zu Deutsch: komma-getrennte Werte). In der ersten Zeile stehen in diesem Fall noch die Feldbezeichnungen (Anrede, Titel, Vorname etc.), doch das ist nicht zwingend.
Bei einem derart simplen Dateiformat sollte eigentlich nicht viel schiefgehen. Und doch gibt es immer wieder Probleme, wenn man CSV-Dateien mit Excel erstellt.
Strichpunkt statt Komma als CSV-Trennzeichen
Das häufigste Problem besteht darin, dass die Werte nicht durch Kommas, sondern durch Strichpunkte (Semikolons) getrennt sind. Importiert man eine solche CSV-Datei in ein System, das nicht beide Trennzeichen akzeptiert, schlägt der Import zwangsläufig fehl, weil dieses System die einzelnen Felder nicht auseinanderhalten kann.
Warum passiert das – und wie kann man einen solchen Fehler beheben? Leider gibt es in Excel selbst keine Möglichkeit, das CSV-Trennzeichen (engl. CSV Seperator oder CSV Delimiter) einzustellen. Excel greift vielmehr auf Systemeinstellungen zurück, genauer auf die regionalen Formate. Bei Windows sind diese Einstellungen nur schwer zu finden; auf dem Mac – insbesondere seit in macOS 13 Ventura die Systemsteuerung komplett umgebaut wurde – sind sie schlicht nicht vorhanden.
Gelegentlich liest man, das CSV-Trennzeichen hänge vom Dezimaltrennzeichen ab: Nur in Regionen, welche den Dezimalpunkt verwenden, nutze Excel das Komma als CSV-Trennzeichen – in Regionen mit Dezimalkomma hingegen das Semikolon. Das klingt im ersten Moment logisch, denn natürlich müssen die beiden Trennzeichen voneinander unterscheidbar sein. Allerdings können Kommas ja auch andernorts in den Daten vorkommen, und das funktioniert trotzdem (solche Felder müssen lediglich in Anführungs- und Schlusszeichen gesetzt werden). Und nach unserer Beobachtung ist diese Regel auch nicht zuverlässig: In der Schweiz wird bekanntlich der Dezimalpunkt genutzt – aber Excel verwendet sowohl unter Windows als auch unter macOS das Semikolon als CSV-Trennzeichen.
Was also tun, wenn Excel beim CSV-Export Semikolons statt Kommas verwendet? Die pragmatische Lösung besteht darin, die exportierte Datei in einem Text-Editor zu öffnen und mit «Suchen & Ersetzen» alle Semikolons durch Kommas zu überschreiben. Das dauert nur eine Minute und funktioniert auf allen Betriebssystemen.
Auf dem Mac kann man CSV-Dateien statt mit Microsoft Excel mit Apple Numbers erstellen. Zwar gibt es auch hier keine Einstellmöglichkeit für das Trennzeichen, aber zumindest auf unseren Macs exportiert Numbers CSV-Dateien wie gewünscht mit Kommas. Dasselbe gilt für die Online-Tabellenkalkulation von Google Docs.
Unter Windows kann man Excel dadurch umstellen, dass man in den regionalen Einstellungen das sogenannte Listentrennzeichen anpasst. Den entsprechenden Dialog zu finden ist allerdings nicht ganz einfach. In den «neuen» Einstellungen von Windows 10 gibt es nämlich unter «Region» kein solches Feld. Stattdessen muss man über die «alte» Systemsteuerung gehen und dort unter «Zeit und Region» – «Region» – «Weitere Einstellungen…» den oben gezeigten Dialog finden. Dort gibt es im unteren Drittel ein Feld namens «Listentrennzeichen», wo man statt des Semikolons ein Komma eintragen kann.
Sonderzeichen und die UTF-8-Encodierung
Ein weiteres Problem im Umgang mit CSV-Dateien können Sonderzeichen verursachen, also beispielsweise Umlaute oder Akzente. In der Computerwelt gibt es verschiedene Zeichensätze. Wenn beim Lesen einer Datei ein anderer Zeichensatz benutzt wird als beim Schreiben dieser Datei, dann werden unter Umständen Zeichen vertauscht – insbesondere jene Zeichen, die nicht zum englischen Zeichenvorrat gehören wie eben Umlaute oder Akzente.
Glücklicherweise gibt es inzwischen einen sehr verbreiteten und für sehr viele Sprachen geeigneten Zeichensatz namens UTF-8. Solange eine CSV-Datei im UTF-8 Format gespeichert wird, stehen die Chancen gut, dass die Daten fehlerfrei im Zielsystem ankommen. Um das zu erreichen, muss man lediglich beim Export aus Excel darauf achten, das richtige CSV-Format auszuwählen. Und richtig bedeutet in diesem Fall «CSV UTF-8».