Ein Satz erklärt das meiste: CSV ist eine Textdatei mit Kommas darin; XLSX ist ein gezippter Ordner voller XML, den nur ein Tabellenprogramm versteht. Fast jeder praktische Unterschied folgt daraus.
Die nützliche Frage lautet selten „Was ist besser?“. Sie lautet: „Wem gebe ich die Datei, und was übersteht sie auf dem Weg dorthin?“
Die schnelle Antwort
- Daten gehen an ein Programm (Import, API, Skript, Datenbank): CSV.
- Ein Dokument geht an einen Menschen (Formatierung, Formeln, mehrere Tabellenblätter): XLSX.
- Die Datei ist groß (etwa über 100 MB oder 500.000 Zeilen): CSV.
- Die Werte müssen exakt so zurückkommen, wie sie hineingingen (Postleitzahlen, Artikelnummern, Telefonnummern, lange IDs): CSV, und das dazusagen, denn das empfangende Tabellenprogramm ist es, das sie verstümmelt.
Was die beiden eigentlich sind
Eine CSV-Datei hat eine Zeile pro Datensatz, die Werte sind durch Kommas getrennt, und jeder Wert mit einem Komma steht in Anführungszeichen. Man kann sie in einem Texteditor lesen. Man kann sie mit echo schreiben. Es gibt eine Spezifikation, RFC 4180, und die fast allgemeine Übereinkunft, Teile davon zu ignorieren. Darum unterscheiden sich die Trennzeichen von Land zu Land, und darum sind kaputte CSV-Dateien ein eigenes Thema.
Sie speichert Werte und sonst nichts. Keine Datentypen, keine Formate, keine Formeln, keine Farben, kein zweites Tabellenblatt. Eine Zelle mit 007 und eine Zelle mit der Zahl sieben sind nach dem Schreiben nicht zu unterscheiden: Beides sind nur die Zeichen zwischen zwei Kommas, und was danach passiert, hängt allein davon ab, was die Datei liest.
Eine XLSX-Datei ist ein ZIP-Archiv. Benennt man sie in .zip um und entpackt sie, erhält man ein Verzeichnis voller XML: eine Datei pro Tabellenblatt, eine Tabelle mit gemeinsamen Zeichenketten, eine Formattabelle, Beziehungsdateien. Sie speichert alles, was ein Tabellenprogramm kennt: Zelltypen, Zahlenformate, Formeln und ihre zwischengespeicherten Ergebnisse, Diagramme, bedingte Formatierung, fixierte Bereiche, Makros in der Variante .xlsm.
Im direkten Vergleich
| CSV | XLSX | |
|---|---|---|
| Dateityp | Klartext | Komprimiertes XML-Archiv |
| Zeilenlimit | Keins | 1.048.576 pro Blatt |
| Spaltenlimit | Keins | 16.384 |
| Mehrere Blätter | Nein | Ja |
| Formeln | Nein | Ja |
| Formatierung, Diagramme | Nein | Ja |
| Datentypen | Keine: alles ist Text | Ausdrücklich pro Zelle |
| Größe, 1 Mio. Zeilen × 10 Spalten | ca. 150 MB | ca. 40 MB |
| Im Texteditor lesbar | Ja | Nein |
| In 20 Jahren noch lesbar | Mit ziemlicher Sicherheit | Wahrscheinlich |
| Diffs in Git | Sauber | Gar nicht |
Zwei Zeilen verdienen eine genauere Erklärung.
Größe, und warum die Antwort kippt
XLSX wird komprimiert, deshalb ist es bei denselben Daten auf der Festplatte meist kleiner, oft um das Drei- bis Vierfache. Damit wirkt CSV für große Datenmengen wie die falsche Wahl, aber das ist verkehrt herum gedacht.
Bei einer großen Datei zählt nicht die Größe auf der Festplatte, sondern was beim Öffnen passiert. Eine XLSX-Datei muss entpackt und in ein Objektmodell geparst werden, bevor man die erste Zeile sieht; alles landet im Arbeitsspeicher. Eine CSV-Datei lässt sich Zeile für Zeile lesen, ein Werkzeug kann also eine 5-GB-Datei streamen, die es nie komplett im Speicher halten könnte. Deshalb beginnt jede Antwort auf „Wie verarbeite ich diese Datei mit DuckDB?“ mit einer CSV-Datei, und deshalb zählt das Zeilenlimit oben: Ein Export mit drei Millionen Zeilen kann in einem Blatt keine XLSX-Datei sein, egal wie groß.
Typen, und der Hin-und-zurück-Weg, der deine Daten frisst
Das ist der Unterschied, der Menschen tatsächlich Arbeit kostet.
Weil CSV keine Typen mitbringt, muss ein Tabellenprogramm beim Import raten. Die Vermutungen sind konsequent und konsequent auf dieselben vier Arten falsch:
01234wird zu1234: Die führende Null einer Postleitzahl verschwindet.4019283746501928wird zu4.01928E+15: eine ID in wissenschaftlicher Notation, und die letzten Ziffern sind weg, nicht nur ausgeblendet.3/4/2026wird je nach Ländereinstellung zum 4. März oder zum 3. April.MAR1,SEPT2,DEC5werden zu Datumsangaben. Genforscher haben 2020 deshalb 27 menschliche Gene umbenannt.
Öffnet man eine CSV-Datei in Excel und speichert sie wieder als CSV, sind diese Änderungen dauerhaft in der Datei. Die CSV-Datei hat die Daten nicht verloren. Das Tabellenprogramm, mit dem du sie geöffnet hast, hat es getan. Genau das spricht dafür, eine CSV-Datei mit etwas zu lesen, das sie als CSV liest und nicht als Tabellendokument:
Liest die Datei als CSV, statt sie zu importieren: keine Typumwandlung, kein Raten bei Datumsformaten je nach Region, und SQL oder Fragen in normaler Sprache an die Werte, so wie sie geschrieben sind.
Was es kannDie Wahl nach Situation
CSV verwenden, wenn:
- Auf der anderen Seite etwas Automatisiertes sitzt: ein Datenbankimport, ein Skript, eine API.
- Die Datei groß ist oder wächst.
- Die Daten Byte für Byte hin und zurück gehen müssen.
- Sie in die Versionskontrolle kommt und man sehen soll, was sich geändert hat.
- Sie in zehn Jahren lesbar sein soll, ohne Annahmen über Software.
XLSX verwenden, wenn:
- Ein Mensch die Datei öffnet und das Layout Teil der Aussage ist.
- Formeln aktiv bleiben müssen.
- Die Daten wirklich aus mehreren Blättern bestehen.
- Zelltypen wichtig sind und du nicht steuern kannst, womit die Datei geöffnet wird. Das ist das ehrliche Argument für XLSX: Typen, die der Empfänger nicht falsch verstehen kann.
- du Diagramme, Filter oder bedingte Formatierung in der Datei selbst brauchst.
Keins von beiden verwenden, wenn: der Datensatz größer ist als eine Tabelle und du ihn wiederholt abfragst. Das ist die Aufgabe von Parquet oder einer Datenbank. Parquet ist spaltenorientiert, typisiert und komprimiert, und sowohl DuckDB als auch pandas lesen es nativ.
Was dazu oft falsch verstanden wird
„CSV ist ein Excel-Format.“ Ist es nicht; Excel öffnet es nur, und deshalb passiert die Typumwandlung oben. CSV ist zwei Jahrzehnte älter als Excel.
„XLS und XLSX sind dasselbe.“ XLS ist das binäre Format von vor 2007, das aus alten Systemen immer noch auftaucht. XLSX ist der Nachfolger auf Basis von OOXML. Bekommst du eine .xls-Datei, konvertiere sie. Modernes Excel öffnet sie mit Warnungen, und manche Werkzeuge lehnen sie ganz ab.
„XLSX ist sicherer, weil es ein richtiges Format ist.“ XLSX kann Makros, externe Verknüpfungen und DDE-Nutzlasten enthalten; CSV ist harmloser Text, abgesehen von Formelinjektion, bei der ein Wert, der mit =, +, - oder @ beginnt, vom öffnenden Tabellenprogramm ausgeführt wird. Beide verlangen Vorsicht, nur in unterschiedliche Richtungen.
„Konvertieren ist verlustfrei.“ Von XLSX nach CSV gehen alle Formeln verloren (der zuletzt berechnete Wert bleibt), ebenso jedes weitere Blatt und die gesamte Formatierung. Von CSV nach XLSX kommen Typen dazu, die nie in den Daten standen, und dort entsteht die Verstümmelung. CSV auf dem Handy in Excel umwandeln zeigt, wie das ohne Schäden geht.
Die eine Gewohnheit, die sich lohnt
Wenn du jemandem eine CSV-Datei mit Codes, IDs oder Datumsangaben schickst, sag es in der Nachricht dazu: „Bitte mit einem Importschritt öffnen und die ID-Spalte als Text festlegen.“ Zwei Zeilen E-Mail verhindern den häufigsten Datenqualitätsfehler im Büroalltag, und keine Formatwahl verhindert ihn allein.