Ratgeber · Praxis & Code
Excel-CSV mit Semikolon in JSON umwandeln
Eine CSV aus deutschem Excel verhält sich anders als der Standard: Semikolon statt Komma, Dezimalkomma, manchmal ein BOM oder eine ältere Codierung. So gelingt die Umwandlung in JSON.
Wer in Deutschland eine Tabelle aus Excel als CSV speichert, erhält meist eine Datei, die ein englischsprachiges Werkzeug nicht ohne Weiteres versteht. Drei Eigenheiten sind schuld: das Trennzeichen, das Dezimalzeichen und die Zeichencodierung.
Die drei Eigenheiten
Semikolon als Trennzeichen. Excel schreibt und liest CSV mit dem Listentrennzeichen aus der Windows-Regionseinstellung. In Deutschland ist das ein Semikolon. Ein Konverter, der nur Kommas kennt, liest dann jede Zeile als ein einziges Feld. Unser Konverter erkennt das Semikolon bei „Automatisch erkennen“ selbst.
Dezimalkomma. Dieselbe Regionseinstellung schreibt Zahlen als 3,14. JSON verlangt den Punkt. Damit aus 3,14 die Zahl 3.14 wird, schalten Sie die Option „Zahlen mit Dezimalkomma als Zahl lesen“ ein. Beachten Sie, dass Tausenderpunkte wie in 1.234,56 nicht verarbeitet werden und der Wert Text bleibt.
Zeichencodierung. Der Menüpunkt „CSV (Trennzeichen-getrennt)“ speichert in der Windows-Standardcodierung, also meist Windows-1252. Umlaute stehen darin als einzelne Bytes, die als UTF-8 gelesen ungültig sind. Der Menüpunkt „CSV UTF-8 (durch Trennzeichen getrennt)“ schreibt UTF-8 mit einem BOM am Anfang. Beim Öffnen einer Datei prüft der Konverter zuerst auf gültiges UTF-8. Ist es keins, liest er die Datei als Windows-1252 und blendet einen Hinweis ein.
Excel-CSV sauber exportieren
- Datei, Speichern unter, Dateityp „CSV UTF-8 (durch Trennzeichen getrennt)“ wählen.
- Bei Spalten mit führenden Nullen vorher das Zellformat auf „Text“ stellen, denn Excel entfernt Nullen bei Zahlenformaten schon in der Tabelle. Der Konverter kann bereits verlorene Nullen nicht zurückholen.
- Die Datei im Konverter öffnen. Trennzeichen und Codierung werden erkannt.
Beispiel
PLZ;Ort;Umsatz
01067;Dresden;1234,5
20095;Hamburg;987,25
Mit Typerkennung und eingeschalteter Dezimalkomma-Option entsteht:
[
{ "PLZ": "01067", "Ort": "Dresden", "Umsatz": 1234.5 },
{ "PLZ": "20095", "Ort": "Hamburg", "Umsatz": 987.25 }
]
Die Postleitzahl-Spalte bleibt Text, der Umsatz wird zur Zahl. Ohne die Dezimalkomma-Option stünde "Umsatz": "1234,5" als Text im Ergebnis.
Umgekehrt: JSON für Excel
Wer JSON in eine für deutsches Excel passende CSV zurückverwandelt, wählt das Semikolon und lässt „UTF-8 mit BOM speichern“ eingeschaltet. Damit erkennt Excel Trennzeichen und Umlaute beim Doppelklick. Alternativ importieren Sie die Datei über „Daten, Aus Text/CSV“ und wählen dort UTF-8 als Dateiursprung.
Wenn Umlaute kaputt sind
Zeichen wie „ä“ statt „ä“ entstehen, wenn UTF-8-Bytes als Windows-1252 gelesen werden. Zeichen wie „�“ entstehen im umgekehrten Fall. Prüfen Sie dann, in welcher Codierung die Datei gespeichert wurde, und exportieren Sie sie bei Bedarf als „CSV UTF-8“ neu.
Wiederkehrende oder große Exporte
Für regelmäßige Umwandlungen ist ein Skript sinnvoller als ein Browser-Werkzeug. In Python liest pd.read_csv("datei.csv", sep=";", encoding="utf-8-sig", decimal=",", dtype={"PLZ": str}) die Datei, in PowerShell Import-Csv -Delimiter ";" -Encoding UTF8 datei.csv | ConvertTo-Json. Mehr Vergleichspunkte stehen im Ratgeber Die Wege von CSV zu JSON im Vergleich.
Worauf es ankommt
Semikolon, Dezimalkomma und Codierung sind die drei Stellen, an denen deutsche Excel-Dateien abweichen. Exportieren Sie als „CSV UTF-8“, lassen Sie das Trennzeichen erkennen und entscheiden Sie bewusst, ob Dezimalzahlen als Zahl gelesen werden sollen.
FAQ
Häufige Fragen
Warum nutzt deutsches Excel das Semikolon?
Beim Öffnen per Doppelklick und beim Speichern als CSV verwendet Excel das Listentrennzeichen der Windows-Regionseinstellung. In Deutschland ist das ein Semikolon, weil das Komma als Dezimaltrennzeichen belegt ist. Es hängt also an der Regionseinstellung, nicht an der Excel-Sprache.
Was ist ein BOM und stört es?
Das Byte-Order-Mark sind die drei Bytes EF BB BF am Dateianfang. Excel setzt sie bei „CSV UTF-8“-Exporten, damit die Datei beim Öffnen als UTF-8 erkannt wird. Eigene Skripte müssen es bewusst behandeln, sonst heißt der erste Schlüssel „Name“. Der Konverter entfernt es automatisch.
Wie bekomme ich Dezimalzahlen wie 3,14 als Zahl in JSON?
JSON kennt nur den Punkt als Dezimaltrennzeichen. Aktivieren Sie bei eingeschalteter Typerkennung die Option „Zahlen mit Dezimalkomma als Zahl lesen“. Dann wird aus 3,14 die JSON-Zahl 3.14. Ohne die Option bleibt der Wert Text.
Quellen