Skip to content
Back to Blog
how-to-convert

Wie man XLSX in CSV konvertiert (und Kodierungs-Kopfschmerzen vermeidet)

2026-05-17 8 min read

Warum Konvertierungen von XLSX zu CSV schiefgehen

Sie scheinen so ähnlich zu sein. XLSX und CSV sind doch beides Datentabellen, oder? Aber unter der Haube sind sie zwei völlig verschiedene Paar Schuhe. Eine XLSX-Datei ist ein komplexes Paket – ein ZIP-Archiv aus XML-Dokumenten, das mehrere Blätter, aufwendige Zellformatierungen, Formeln und sogar Bilder enthält. Eine CSV-Datei ist nur Text. Zeilen enden mit einem Zeilenumbruch, Spalten werden durch ein Zeichen wie ein Komma getrennt. Wenn du diese reichhaltige XLSX-Struktur in reinen Text presst, handelst du dir Ärger ein. Die größten Kopfschmerzen verursachen Kodierungsprobleme. Wenn deine Tabelle Sonderzeichen enthält – Buchstaben mit Akzenten wie é oder ñ, Währungssymbole wie € oder nicht-lateinischen Text – muss die ausgegebene CSV-Datei unbedingt die richtige Zeichenkodierung verwenden, und das ist fast immer UTF-8. Viele Tools greifen standardmäßig auf ältere Kodierungen wie Windows-1252 zurück, die diese Zeichen in Fragezeichen verstümmeln. Ein Kundenname wie „José García“ wird zu „Jos? Garc?a“, und dein CRM-Import schlägt fehl. Konflikte mit Trennzeichen sind ein weiteres klassisches Problem. Wenn deine CSV-Datei Kommas zur Trennung von Spalten verwendet, was passiert dann mit einer Zelle, die ein Komma enthält, wie z. B. die Adresse „Hauptstraße 14, App. 200“? Ein gut programmierter CSV-Writer setzt diesen Wert in doppelte Anführungszeichen. Aber wenn die Daten selbst doppelte Anführungszeichen enthalten, müssen diese durch Verdopplung maskiert werden („Er sagte „hallo““ wird zu „"Er sagte ""hallo"""“). Wenn du weißt, wo diese Tretminen vergraben sind, bevor du mit der Konvertierung beginnst, ersparst du dir Stunden schmerzhafter Fehlersuche.

Die Kodierungs-Entscheidung: UTF-8, UTF-8 BOM oder etwas anderes

Bevor du irgendetwas konvertierst, triff eine entscheidende Entscheidung: Welche Kodierung benötigt dein Zielsystem? Wenn du das richtig machst, umgehst du die große Mehrheit der Konvertierungsprobleme. Für fast jedes moderne System lautet die Antwort UTF-8. Punkt. Datenbanken, Python-Skripte, Web-APIs – sie alle erwarten und verarbeiten UTF-8 perfekt. Wenn du die CSV-Datei mit `pd.read_csv()` in Pandas einliest, ist UTF-8 der Standard und es funktioniert einfach. Dasselbe gilt für den `COPY`-Befehl von PostgreSQL oder `LOAD DATA INFILE` von MySQL, wenn du `CHARACTER SET utf8mb4` angibst. Dann gibt es noch UTF-8 mit BOM (Byte Order Mark). Diese Variante fügt drei unsichtbare Bytes (0xEF, 0xBB, 0xBF) an den Anfang der Datei. Warum gibt es das? Um Microsoft Excel zu helfen. Unter Windows geht Excel oft davon aus, dass eine CSV-Datei mit Windows-1252 kodiert ist, es sei denn, es sieht dieses BOM, und verstümmelt alle Sonderzeichen. Hier ist also die einfache Regel: Wenn ein Mensch die CSV-Datei direkt in Excel öffnen wird, verwende UTF-8 BOM. Wenn ein Skript oder Programm sie lesen wird, verwende reines UTF-8, denn dieses BOM kann viele Parser zum Absturz bringen. Ältere Kodierungen wie Windows-1252 (oder ANSI) und ISO-8859-1 (Latin-1) sind Relikte. Sie unterstützen nur westeuropäische Zeichen und zerstören alle Daten aus anderen Sprachen. Du könntest bei Altsystemen auf sie stoßen, aber du solltest sie niemals für einen neuen Workflow wählen. CocoConverts [XLSX zu CSV Konverter](/convert/xlsx-to-csv) lässt dich deine Kodierung direkt zu Beginn auswählen, eine entscheidende Funktion, die viele kostenlose Tools unerklärlicherweise weglassen. Wähle einfach UTF-8 für Systeme und UTF-8 BOM für Excel.

Schritt-für-Schritt: XLSX zu CSV mit CocoConvert konvertieren

Der Prozess ist einfach, aber der Teufel steckt im Detail. Ein paar Einstellungen hier entscheiden über Erfolg oder Misserfolg deiner finalen Datei. 1. Gehe zur [XLSX zu CSV Seite von CocoConvert](/convert/xlsx-to-csv) und lade deine Datei hoch. Du kannst Dateien bis zu 50 MB ohne Account verarbeiten, für größere Dateien ist lediglich eine kostenlose Registrierung erforderlich. Wenn deine XLSX-Datei ein wahres Monster ist – manche Unternehmensexporte können Hunderte von Megabytes groß sein – musst du ein Desktop-Tool wie LibreOffice Calc oder ein Skript verwenden, was wir später behandeln. 2. Wähle das zu exportierende Blatt aus. Eine XLSX-Datei kann viele Blätter enthalten, aber eine CSV-Datei kann nur eines darstellen. CocoConvert listet alle Blätter aus deiner Datei in einem Dropdown-Menü auf. Wenn du alle Blätter exportieren musst, musst du sie einzeln konvertieren. 3. Wähle dein Trennzeichen. Das Komma ist Standard, aber eine schreckliche Wahl, wenn deine Daten voll davon sind (denk an Freitextbeschreibungen oder Adressen). In Europa ist das Semikolon eine gängige und oft sicherere Alternative. Tab-getrennt (TSV) ist eine weitere großartige Option, wenn dein Text sowohl Kommas als auch Semikolons enthält. 4. Stelle die Kodierung ein. Du kennst das Spielchen ja schon: UTF-8 für die programmatische Verwendung, UTF-8 BOM, wenn die Datei für jemanden bestimmt ist, der sie in Excel öffnet. 5. Entscheide, wie Formeln behandelt werden sollen. CocoConvert exportiert den berechneten *Wert* einer Zelle, nicht die Formel selbst. Eine Zelle mit `=SUM(A1:A10)`, die `4500` anzeigt, wird in der CSV-Datei zu `4500`. Das ist in 99 % der Fälle genau das, was du willst. Wenn du tatsächlich den Formeltext benötigst, solltest du gar nicht erst in CSV konvertieren. 6. Herunterladen und überprüfen. **Öffne die CSV-Datei nicht in Excel, um sie zu überprüfen.** Vertrau mir. Öffne sie zuerst in einem echten Texteditor, wie Notepad++ unter Windows oder BBEdit auf dem Mac. Diese Tools zeigen dir den reinen Text und lassen dich bestätigen, dass die Kodierung korrekt ist. Finde eine Zeile mit Sonderzeichen und stelle sicher, dass sie richtig aussehen, bevor du auch nur daran denkst, sie in dein Zielsystem zu importieren.

Die Konvertierung in Excel und LibreOffice (wenn du die Kontrolle behalten musst)

Manchmal musst du lokal konvertieren. Vielleicht enthält die Datei sensible Daten, die nicht hochgeladen werden können, oder es ist ein 200-MB-Koloss, der Online-Tools in die Knie zwingt. Sowohl Excel als auch LibreOffice erledigen die Aufgabe, aber jedes hat seine eigenen Eigenheiten. In Microsoft Excel (Office 365 / Excel 2019+): Öffne deine XLSX-Datei, navigiere zu Datei → Speichern unter und wähle im Dropdown-Menü „Dateityp“ die Option „CSV UTF-8 (Trennzeichen-getrennt) (*.csv)“. Diese Option, die Microsoft *endlich* in Excel 2016 hinzugefügt hat, speichert korrekt mit UTF-8-BOM-Kodierung. Achte darauf, nicht die einfache Option „CSV (Trennzeichen-getrennt)“ zu wählen; diese speichert mit der veralteten Windows-1252-Kodierung, eine Falle, in die unzählige Entwickler getappt sind. Excel wird dich warnen, dass nur das aktive Blatt gespeichert wird. Klicke auf OK und wiederhole den Vorgang für alle anderen Blätter, die du benötigst. In LibreOffice Calc (ein fantastisches, kostenloses, plattformübergreifendes Tool): Öffne die Datei, gehe zu Datei → Kopie speichern... (mit „Speichern unter“ würdest du deine aktuelle Datei ändern). Wähle „Text CSV (.csv)“ als Format und bestätige, dass du das aktuelle Format beibehalten möchtest. Dies öffnet einen leistungsstarken Dialog mit expliziten Optionen. Du kannst das Feldtrennzeichen, das Texttrennzeichen (lass es bei doppelten Anführungszeichen) und vor allem den Zeichensatz festlegen. Wähle „Unicode (UTF-8)“. LibreOffice erzeugt korrekterweise eine reine UTF-8-Datei ohne BOM, was sie ideal für die programmatische Verwendung macht. Hier ist die Einschränkung beider Tools: Keines gibt dir die Kontrolle darüber, wie Nullen, leere Zellen oder boolesche Werte dargestellt werden. Wenn dein nachgelagerter Prozess leere Zeichenketten für Nullen anstelle von einfach nichts benötigt oder `1`/`0` anstelle von `WAHR`/`FALSCH` erwartet, hast du Pech. Du musst später einen Bereinigungsdurchlauf über die CSV-Datei skripten oder von Anfang an ein leistungsfähigeres Werkzeug verwenden.

Skriptgesteuerte Konvertierung mit Python (für wiederholbare Arbeitsabläufe)

Wenn du immer wieder die gleiche Art von XLSX-Datei konvertieren musst – wie einen wöchentlichen Bericht aus dem Buchhaltungssystem – sind manuelle Klicks ein Rezept für Fehler. Ein einfaches Python-Skript ist schneller, zuverlässiger und läuft in Sekunden. Zuerst benötigst du die Bibliotheken `openpyxl` und `pandas`. Installiere sie mit `pip install openpyxl pandas`. Dann ist der Code bemerkenswert sauber: ```python import pandas as pd df = pd.read_excel('report.xlsx', sheet_name='Sales Data', engine='openpyxl') df.to_csv('report.csv', index=False, encoding='utf-8') ``` Der Parameter `sheet_name` kann der Name des Blattes als String oder seine nullbasierte Indexnummer sein. Vergiss nicht `index=False`; es verhindert, dass Pandas seine eigenen Zeilennummern in die erste Spalte schreibt, was die meisten Import-Tools definitiv verwirren wird. Für den `encoding`-Parameter erzeugt `'utf-8'` eine standardmäßige, BOM-lose UTF-8-Datei. Wenn du weißt, dass die Ausgabe direkt an einen Excel-Benutzer geht, verwende `'utf-8-sig'`, um das BOM einzuschließen. Pandas ist auch bei Datumsangaben clever und parst sie in `datetime64`-Objekte. Es schreibt sie im ISO 8601-Format (`YYYY-MM-DD HH:MM:SS`), das die meisten Datenbanken lieben. Wenn dein Zielsystem wählerisch ist und etwas wie `MM/DD/YYYY` benötigt, füge einfach das Argument `date_format='%m/%d/%Y'` zu deinem `to_csv()`-Aufruf hinzu. Bei riesigen Dateien (50.000+ Zeilen) lädt `openpyxl` die gesamte Datei in den Speicher, sodass `pd.read_excel()` langsam sein kann. Auch das Schreiben kann ein Engpass sein. Wenn du an Speichergrenzen stößt, kannst du die CSV-Datei in Blöcken schreiben. Und wenn du mit alten `.xls`-Dateien zu tun hast, ist die `xlrd`-Engine schneller, aber für moderne `.xlsx`-Dateien bleib bei `openpyxl`. Wenn du mehrere Blätter exportieren musst, ist `pd.read_excel('report.xlsx', sheet_name=None)` ein Lebensretter. Es gibt ein Dictionary zurück, bei dem die Schlüssel die Blattnamen und die Werte die DataFrames sind. Du kannst dann durch dieses Dictionary iterieren und jedes Blatt in eine eigene CSV-Datei speichern – der perfekte Weg, um einen vollständigen Arbeitsmappen-Export zu automatisieren.

Validiere deine CSV-Datei, bevor sie in deiner Datenbank landet

Eine CSV-Datei kann in der Vorschau perfekt aussehen und trotzdem deinen Datenbankimport zerschmettern. Jeder, der schon einmal zugesehen hat, wie ein Import-Job nach 20 Minuten stillschweigend fehlschlägt, kennt den Schmerz. Ein paar schnelle Validierungsschritte können diese Störenfriede frühzeitig erwischen. Überprüfe zuerst die Zeilenanzahl. Wenn deine XLSX-Datei 12.847 Datenzeilen und eine Kopfzeile hatte, sollte deine CSV-Datei genau 12.848 Zeilen haben. Unter Linux oder macOS gibt dir `wc -l report.csv` sofort die Antwort. Wenn die Zahlen nicht übereinstimmen, enthielt eine Zelle wahrscheinlich ein Zeilenumbruchzeichen – ein häufiges Problem in „Notizen“-Feldern, in denen Benutzer einfach die Eingabetaste drücken. Ein ordentlicher CSV-Writer sollte dies korrekt in Anführungszeichen setzen, aber es ist eine häufige Fehlerquelle. Als Nächstes überprüfe stichprobenartig deine Sonderzeichen. Finde eine Zeile in der ursprünglichen XLSX-Datei mit einem Akzent, einem Währungssymbol oder nicht-lateinischem Text. Öffne nun die CSV-Datei in einem Texteditor, der die Kodierung der Datei anzeigt (VS Code und Notepad++ tun dies beide). Bestätige, dass die Kodierung die von dir gewählte ist und dass die Zeichen korrekt dargestellt werden. Teste das Trennzeichen. Wenn du ein Komma verwendet hast, suche im reinen Text nach Kommas, die nicht in Anführungszeichen stehen. Ein schneller `grep`-Befehl unter Linux (`grep -P '(?<!\" ),[^\"\\n]*(?<!\" ),' report.csv`) kann helfen, Zeilen zu finden, in denen die Anführungszeichen möglicherweise vergessen wurden, obwohl du den Regex eventuell für deine spezifischen Daten anpassen musst. Schließlich validiere einige Spaltendatentypen. Wenn eine Spalte nur ganze Zahlen enthalten soll, überprüfe sie. In Python kannst du die CSV-Datei laden und `pd.read_csv('report.csv')['order_id'].dtype` überprüfen. Es sollte `int64` ausgeben. Wenn `object` angezeigt wird, hast du ein Problem – ein verirrtes Textzeichen, ein `#N/A`-Fehler, den du übersehen hast, oder ein Währungssymbol, das sich in eine numerische Zelle eingeschlichen hat. Fünf Minuten für diese Prüfungen zu investieren, wird dir Stunden bei der Fehlersuche eines fehlgeschlagenen Datenimports ersparen.

Häufige Grenzfälle und ehrliche Einschränkungen

Selbst mit den richtigen Werkzeugen lassen sich einige XLSX-Funktionen einfach nicht sauber in die simple Welt von CSV abbilden. Hier sind ein paar häufige Fallen. Verbundene Zellen: Verbundene Zellen in Excel sind ein visueller Trick. Wenn du sie in CSV konvertierst, überlebt nur der Wert aus der Zelle oben links im verbundenen Bereich; die anderen Zellen werden leer. Um es klar zu sagen: Dafür gibt es keine saubere, automatisierte Lösung. Du musst die Zellen in Excel *vor* der Konvertierung trennen (Alles markieren, Format → Zellen → Ausrichtung, Häkchen bei „Zellen verbinden“ entfernen) und die nun leeren Zellen manuell ausfüllen. Mehrere Kopfzeilen: Es ist üblich, Berichte mit zwei oder drei Kopfzeilen zu sehen – eine Hauptkategorie, eine Unterkategorie und dann die eigentlichen Spaltennamen. CSV-Parser sind für genau eine Kopfzeile ausgelegt. Dies ist eine weitere manuelle Aufräumarbeit; du musst die Kopfzeilen in der XLSX-Datei vereinfachen oder die überzähligen Zeilen aus der CSV-Datei löschen, bevor sie nützlich ist. Formelfehler: Wenn eine Zelle in Excel `#REF!`, `#DIV/0!` oder `#VALUE!` anzeigt, wird genau dieser Text in deine CSV-Datei geschrieben. Diese Zeichenketten vergiften jede numerische Spalte und verursachen Typfehler beim Import. Bereinige sie zuerst in Excel, entweder indem du die Quelldaten korrigierst oder die Formeln in eine `IFERROR()`-Funktion einbettest. Sehr große Dateien: CocoConvert ist großzügig und verarbeitet Dateien bis zu 50 MB kostenlos und 200 MB mit einem Account. Für alles, was größer ist, ist ein Online-Tool nicht praktikabel. Wechsle zur Python/Pandas-Methode oder verwende das Kommandozeilen-Tool von LibreOffice (`libreoffice --headless --convert-to csv filename.xlsx`). Passwortgeschützte XLSX-Dateien: Kein Online-Tool, einschließlich CocoConvert, kann eine passwortgeschützte Datei öffnen. Du musst das Passwort selbst in Excel entfernen (Datei → Informationen → Arbeitsmappe schützen → Mit Kennwort verschlüsseln), die Datei speichern und sie dann hochladen. Bilder und Diagramme: Diese werden stillschweigend verworfen. Sie existieren im CSV-Format einfach nicht. Wenn dein Blatt hauptsächlich aus einem Diagramm mit einer kleinen Datentabelle bestand, wird das Diagramm sich in Luft auflösen und nur den Text zurücklassen. Das ist kein Fehler, sondern einfach eine grundlegende Einschränkung von CSV.

Ready to convert?

Try it now — fast, secure, and private.

Convert Now →