Json To Csv LogoJson To Csv

CSV-Datei zu groß für Excel: Warum Excel Ihre große CSV-Datei nicht öffnet und was Sie stattdessen tun (Anleitung 2026)

Excel endet bei 1.048.576 Zeilen pro Arbeitsblatt, und eine CSV-Datei mit mehr Zeilen öffnet sich gekürzt, wobei der Rest stillschweigend im Arbeitsblatt fehlt. Die Datei selbst ist in Ordnung: CSV ist reiner Text und hat keine eigene Größenbegrenzung, also kommt die Grenze von dem Programm, das sie öffnet, nicht von der Datei. Die Lösung ist keine Einstellung in Excel, weil die Rastergrenze fest verdrahtet ist. Teilen Sie die Datei in Teile unterhalb der Grenze auf, laden Sie die ganze Datei mit Power Query in das Datenmodell, oder sehen Sie sich nur die Zeilen an, die Sie brauchen. Speichern Sie niemals über das Original, weil das Speichern eines gekürzten Arbeitsblatts die Zeilen löscht, die Excel nie geladen hat.

Aktualisiert: 2026-11-0911 Min. Lesezeit

In 30 Sekunden prüfen: Zählen Sie die Zeilen, bevor Sie die Datei beschuldigen

Das Erste, was Sie klären sollten, wenn Excel Ihre CSV-Datei verweigert oder kürzt, ist, wie viele Zeilen die Datei tatsächlich enthält, weil die Lösung vollständig von dieser Zahl abhängt, und Raten kostet nur Zeit. Eine Datei mit 900.000 Zeilen öffnet sich in Excel problemlos, und das Problem liegt dann woanders, zum Beispiel bei einem Trennzeichen oder bei einem Kodierungsproblem, das die begleitenden Anleitungen behandeln. Eine Datei mit 1,2 Millionen Zeilen stößt an die Rastergrenze, und keine Einstellung in Excel lässt sie hineinpassen. Zählen Sie zuerst, und wählen Sie dann die Lösung, die zur Zahl passt, statt Lösungen aufs Geratewohl auszuprobieren.

Die schnellste Zählung braucht keine weitere Software außer einem Terminal. Unter Windows öffnen Sie PowerShell und führen Get-Content mit Measure-Object aus, oder auf einem Mac oder unter Linux führen Sie wc -l für die Datei aus, was die Zeilenenden zählt. Auch ein Texteditor mit einer Zeilenzahl in der Statusleiste funktioniert, wobei eine sehr große Datei in einem Editor eine Weile zum Öffnen brauchen kann. Die Zahl, die Sie erhalten, sind Zeilen, keine Datenzeilen: Eine Datei mit Kopfzeile hat eine Zeile mehr als Datenzeilen, und Werte, die Zeilenumbrüche in Anführungszeichen enthalten, können sich über mehr als eine Zeile erstrecken, also ist die Zeilenzahl eine Obergrenze, keine genaue Zeilenzahl, und für die meisten Exporte ist sie genau genug für die Entscheidung.

Für eine genaue Zählung verwenden Sie das Python-Modul csv, das die Datei Zeile für Zeile liest und sie nie in den Arbeitsspeicher lädt, also funktioniert es auch bei Dateien, die für eine Tabellenkalkulation viel zu groß sind. Das folgende Beispiel hat eine Testdatei mit 1.200.000 Datenzeilen in wenigen Sekunden gezählt und stimmte genau mit der Zeilenzahl überein, weil diese Datei keine Zeilenumbrüche in Anführungszeichen enthielt. Wenn die beiden Zählungen bei Ihrer Datei voneinander abweichen, vertrauen Sie der Zählung des Moduls csv: Der Unterschied entsteht durch Werte mit eingebetteten Zeilenumbrüchen, und er sagt Ihnen zugleich, dass die Datei mehrzeilige Werte in Anführungszeichen enthält, was für das Rezept zum Aufteilen weiter unten in dieser Anleitung wichtig ist.

Zeilen einer CSV-Datei zählen
Terminal (Mac or Linux):
$ wc -l big_sample.csv
1200001 big_sample.csv

PowerShell (Windows):
PS> (Get-Content big_sample.csv | Measure-Object -Line).Lines
1200001

Python (exact row count, one row at a time):
import csv
with open('big_sample.csv', newline='') as f:
    reader = csv.reader(f)
    header = next(reader)
    rows = sum(1 for _ in reader)
print(header, rows)
# ['id', 'name', 'total'] 1200000

Lines minus the header row: 1,200,001 - 1 = 1,200,000 data rows.
That is 151,425 rows over Excel's limit.

Beachten Sie, was diese Testdatei beweist: Eine CSV-Datei mit 1,2 Millionen Zeilen und drei kurzen Spalten ist auf der Festplatte nur etwa 32 MB groß, also ist das Problem nicht die Dateigröße in Megabyte. Viele erwarten, dass eine große Datei hunderte Megabyte bedeutet, aber eine schmale Datei mit einer Million kurzer Zeilen ist klein auf der Festplatte und trotzdem zu groß für das Raster. Die Zeilenzahl ist die Zahl, die zählt, nicht die Megabyte, und deshalb ist die Zählung der erste Schritt. Wenn Ihre Datei mehr als 1.048.575 Datenzeilen hat, haben Sie ein Problem mit der Rastergrenze, und der Rest dieser Anleitung gilt für Sie. Wenn sie darunter liegt, liegt das Problem woanders, und die begleitenden Anleitungen zum Problem mit der einen Spalte, zum Kodierungsproblem und zum Problem mit führenden Nullen sind die richtigen Stellen zum Nachschlagen.

Die eine Zahl, die zählt: 1.048.576 Zeilen

Excel fasst höchstens 1.048.576 Zeilen mal 16.384 Spalten auf einem Arbeitsblatt, und eine einzelne Zelle fasst höchstens 32.767 Zeichen. Das sind die veröffentlichten Grenzen für das aktuelle Tabellenformat, und sie haben sich seit Jahren nicht geändert. Die Kopfzeile zählt als eine der 1.048.576, also kann eine CSV-Datei mit Kopfzeile höchstens 1.048.575 Datenzeilen auf einem Blatt enthalten. Eine Datei mit 1.048.576 Datenzeilen plus Kopfzeile ist eine Zeile zu viel, und Excel kürzt sie. Das ältere Format .xls ist weit kleiner, mit 65.536 Zeilen pro Blatt, also prüfen Sie auch das Format, wenn Ihre Datei aus einem alten System stammt, aber für eine Datei .csv, die in einem modernen Excel geöffnet wird, ist 1.048.576 die Zahl.

Das CSV-Format selbst setzt überhaupt keine Grenze. Eine CSV-Datei ist reiner Text, Zeilen sind durch Zeilenumbrüche getrennt und Werte durch ein Trennzeichen, und die Formatbeschreibung RFC 4180 sagt nichts über eine Höchstzahl an Zeilen, Spalten oder Bytes. Eine CSV-Datei kann so viele Zeilen enthalten, wie Ihre Festplatte Platz hat, und die Testdatei in dieser Anleitung enthält 1,2 Millionen Zeilen in 32 MB ohne jedes Problem. Die Grenze kommt von dem Programm, das die Datei öffnet, nie von der Datei selbst, weshalb sich dieselbe Datei in einem Texteditor oder in einer Datenbank vollständig öffnet und in Excel gekürzt wird. Die Datei zu beschuldigen oder das Programm, das sie exportiert hat, geht am Punkt vorbei: Der Export hat seine Arbeit getan, und das lesende Programm ist dasjenige mit der Obergrenze.

Zwei weitere Zahlen prägen das Problem in der Praxis. Die erste ist die Spaltenzahl: 16.384 Spalten sind großzügig, und fast keine echte CSV-Datei kommt auch nur in ihre Nähe, also ist die Spaltenzahl selten die bindende Grenze. Die zweite ist der Arbeitsspeicher: Excel lädt die Zeilen, die es zeigt, in den Arbeitsspeicher, und eine Datei nahe der Zeilengrenze mit breiten Zeilen kann das Programm bis zum Kriechen verlangsamen oder zum Absturz bringen, selbst wenn die Zeilenzahl technisch unter der Grenze liegt. Eine Million Zeilen mit kurzen Werten öffnet sich problemlos, während eine Million Zeilen mit langen Textwerten sich vielleicht nicht öffnet, also behandeln Sie 1.048.576 als die harte Obergrenze und wenige hunderttausend breite Zeilen als die praktische Grenze. Wenn Ihre Datei langsam und zugleich groß ist, hilft das Rezept zum Aufteilen in dieser Anleitung doppelt, weil kleinere Dateien auch schnellere Dateien sind.

Was Excel tatsächlich macht, wenn die Datei zu groß ist

Wenn Sie eine CSV-Datei mit mehr Zeilen öffnen, als das Raster fasst, verweigert Excel die Datei nicht. Es lädt die ersten 1.048.576 Zeilen, einschließlich der Kopfzeile, und zeigt Ihnen eine Warnung, dass der Datensatz zu groß für das Raster ist und dass das Speichern der Arbeitsmappe die Daten verliert, die nicht geladen wurden. Die eigene Hilfeseite von Microsoft formuliert es in jeder Sprache genau so: Der Datensatz überschreitet die Zahl der Zeilen, die in Excel verfügbar sind, also wurden einige Daten nicht geladen. Der Rest Ihrer Zeilen bleibt in der Datei auf der Festplatte, unberührt, aber er ist nicht in der Arbeitsmappe, und nichts auf dem Bildschirm sagt Ihnen, welche Zeilen fehlen, außer der Zahl.

Der stille Teil ist das, was das Ganze gefährlich macht. Die Arbeitsmappe sieht vollständig aus: Sie hat eine Kopfzeile, sie hat Zeilen bis zum unteren Ende des Blatts, und die fehlenden Zeilen fehlen einfach, ohne Lücke und ohne Markierung. Wenn Sie diese Arbeitsmappe sortieren, filtern oder ein Diagramm daraus erstellen, arbeiten Sie mit einem Teildatensatz, und die Ergebnisse sind falsch auf eine Weise, die schwer zu erkennen ist, weil die erste Million Zeilen oft repräsentativ aussieht. Summen, Mittelwerte und Anzahlen, die aus der gekürzten Arbeitsmappe berechnet werden, sind alle zu niedrig, und der Fehler wächst mit jeder Zeile jenseits der Grenze. Eine Datei mit 1,2 Millionen Zeilen verliert stillschweigend etwa ein Achtel ihrer Daten, und eine Datei mit 5 Millionen Zeilen verliert vier Fünftel davon, während sie auf dem Bildschirm genau gleich aussieht.

Der zerstörerische Teil geschieht beim Speichern. Das Speichern der gekürzten Arbeitsmappe schreibt nur die Zeilen zurück, die Excel geladen hat, also sind die Zeilen, die es nie ins Raster geschafft haben, aus der gespeicherten Datei endgültig verschwunden. Die begleitende Anleitung zum Speichern behandelt diesen Hin und Her Weg im Detail, aber die Regel hier ist absolut: Speichern Sie niemals über die Original-CSV aus einer Arbeitsmappe, die Sie vor der Rastergrenze gewarnt hat. Wenn Sie bereits über die einzige Kopie gespeichert haben, prüfen Sie den Versionsverlauf in OneDrive oder SharePoint, eine Sicherung, einen Anhang in einer E-Mail oder das Quellsystem, aus dem die Datei stammt, weil die gespeicherte Datei die fehlenden Zeilen nicht mehr enthält und keine Formel sie zurückholen kann. Schließen Sie die gekürzte Arbeitsmappe ohne zu speichern, und beginnen Sie mit einer der Lösungen unten erneut von der Originaldatei aus.

Die Grenzen im Vergleich: Excel, Sheets, LibreOffice und Programme ohne Grenze

Nicht jedes Programm endet an derselben Stelle, also beginnt die richtige Lösung manchmal mit einem anderen Programm. Excel endet bei 1.048.576 Zeilen mal 16.384 Spalten pro Arbeitsblatt, wie oben beschrieben. LibreOffice Calc endet bei denselben 1.048.576 Zeilen, aber nur bei 1.024 Spalten, also hilft es bei einer breiten Datei ebenfalls nicht. Apple Numbers warnt, wenn eine Datei etwa 1.000.000 Zeilen überschreitet, also gehört es in dieselbe Klasse. Google Sheets zählt Zellen statt Zeilen: Eine Tabelle kann bis zu 20 Millionen Zellen enthalten, und ein CSV-Import ist zusätzlich auf 100 MB begrenzt, also kann eine schmale Datei mehr Zeilen enthalten, als Excel erlaubt, während eine breite Datei weniger enthält, und die genaue Zeilengrenze hängt von Ihrer Spaltenzahl ab. Eine Datei mit 10 Spalten kann in Sheets etwa 2 Millionen Zeilen enthalten, während eine Datei mit 50 Spalten etwa 400.000 enthält.

Texteditoren haben keine eigene Zeilengrenze, sondern nur den Arbeitsspeicher Ihres Rechners, also öffnet sich eine große CSV-Datei in Notepad, TextEdit oder VS Code als reiner Text vollständig, und Sie können sie durchsuchen, die ersten und letzten Zeilen lesen und die Kopfzeile prüfen, auch wenn Sie sie nicht wie eine Tabelle sortieren oder filtern können. Das macht einen Texteditor zum richtigen Werkzeug, um eine große Datei zu prüfen, und zum falschen Werkzeug, um sie zu analysieren. Python und sein Modul csv haben ebenfalls keine Zeilengrenze, sondern nur den Arbeitsspeicher, und weil das Modul csv Zeile für Zeile liest, kann es Dateien zählen, filtern und aufteilen, die weit größer sind als jede Tabelle, und dabei fast keinen Arbeitsspeicher verbrauchen. Der Weg über eine Datenbank hat praktisch überhaupt keine Zeilengrenze: Importieren Sie die CSV-Datei in SQLite, Postgres oder auch in eine Desktop-Datenbank, und eine Million Zeilen ist eine kleine Tabelle.

Die praktische Regel lautet, das Werkzeug an die Aufgabe anzupassen, statt die Datei in das Werkzeug zu zwingen, das zufällig geöffnet ist. Wenn Sie sich die Daten ansehen müssen, verwenden Sie einen Texteditor. Wenn Sie sie filtern oder aufteilen müssen, verwenden Sie ein Skript. Wenn Sie alle Daten in einem Raster analysieren müssen, verwenden Sie die Lösung mit dem Datenmodell unten oder eine Datenbank. Wenn Sie nur eine Zusammenfassung brauchen, fassen Sie die Datei mit einem Skript zusammen und öffnen Sie die kleine Zusammenfassung in Excel. Die Datei ist nicht das Problem, und die Tabelle ist nicht kaputt. Die Fehlanpassung besteht zwischen einem Datensatz mit einer Million Zeilen und einem Raster mit einer Million Zeilen, und die Lösung besteht darin, das Raster nicht mehr zu bitten, als es fassen kann.

Lösung 1: Datei in Teile aufteilen, die Excel öffnen kann

Das Aufteilen ist die Lösung, die Sie zuerst versuchen sollten, wenn Sie die Daten in gewöhnlichen Arbeitsblättern brauchen, weil sie einfach ist, nichts außer Python braucht und jeder Teil sich in Excel normal öffnet, mit intakter Kopfzeile. Das Rezept lautet, die Datei Zeile für Zeile zu lesen, höchstens 1.048.575 Datenzeilen in jeden Teil zu schreiben und die Kopfzeile oben in jedem Teil zu wiederholen, sodass jeder Teil für sich eine vollständige CSV-Datei ist. Verwenden Sie 1.048.575 statt 1.048.576, weil die Kopfzeile als Zeile zählt, und ein Teil mit 1.048.576 Datenzeilen plus Kopfzeile wäre wieder eine Zeile über der Grenze. Das Skript unten macht genau das und verwendet nur die Python-Standardbibliothek, also gibt es nichts zu installieren.

Das Skript wurde an der Beispieldatei mit 1.200.000 Zeilen aus dem Abschnitt zur Prüfung getestet, die auf der Festplatte 32 MB groß ist. Es hat zwei Teile erzeugt: Der erste enthält die Kopfzeile plus 1.048.575 Datenzeilen, also genau 1.048.576 Zeilen, und der zweite enthält die Kopfzeile plus die übrigen 151.425 Datenzeilen. Das Wiederzusammenfügen der Teile, indem die wiederholte Kopfzeile aus dem zweiten Teil entfernt und die Teile verkettet wurden, hat eine Datei erzeugt, die byteweise identisch mit dem Original war, bestätigt durch den Vergleich der Dateiprüfsummen, also verliert das Aufteilen nichts und ändert nichts. Eine Datei mit 5 Millionen Zeilen würde sich auf dieselbe Weise in fünf Teile aufteilen, und eine Datei mit 10 Millionen Zeilen in zehn, ohne Obergrenze außer dem Festplattenplatz.

Zwei Details sind beim Aufteilen wichtig. Erstens: Behalten Sie die Kopfzeile in jedem Teil, weil ein Teil ohne Kopfzeile sich so öffnet, dass die erste Datenzeile als Kopfzeile gilt, und die Spaltennamen verschwinden. Zweitens: Teilen Sie die Datei niemals auf, indem Sie sie in Excel öffnen und Zeilen von Hand kopieren, weil das manuelle Kopieren von der gekürzten Arbeitsmappe ausgeht und die Zeilen jenseits der Grenze bereits fehlen. Teilen Sie von der Originaldatei auf der Festplatte aus, mit einem Skript, bevor Excel sie je berührt. Sobald die Teile vorhanden sind, öffnen Sie sie einzeln, erledigen Sie Ihre Arbeit, und legen Sie die Originaldatei beiseite, weil die Teile Arbeitskopien sind und das Original die einzige vollständige Kopie ist.

Große CSV-Datei in Excel-gerechte Teile aufteilen
import csv

LIMIT = 1_048_575  # data rows per chunk (header counts as a row)

with open('big.csv', newline='') as f:
    reader = csv.reader(f)
    header = next(reader)
    chunk = 0
    count = 0
    out = open(f'chunk_{chunk}.csv', 'w', newline='')
    writer = csv.writer(out)
    writer.writerow(header)
    for row in reader:
        if count == LIMIT:
            out.close()
            chunk += 1
            count = 0
            out = open(f'chunk_{chunk}.csv', 'w', newline='')
            writer = csv.writer(out)
            writer.writerow(header)
        writer.writerow(row)
        count += 1
    out.close()

print(f'split into {chunk + 1} chunks')

# Verified on a 1,200,000-row file (32 MB):
# chunk_0.csv = 1,048,576 lines (header + 1,048,575 rows)
# chunk_1.csv = 151,426 lines (header + 151,425 rows)
# Rejoining the chunks (header stripped from chunk 1 onward)
# reproduced the original file byte-identically.

Ein weiterer Vorteil des Aufteilens verdient eine Erwähnung: Die Teile sind eigenständige Dateien, also können Sie einen Teil an eine Kollegin oder einen Kollegen weitergeben, einen Teil auf einem langsamen Rechner öffnen oder die Teile parallel verarbeiten, und nichts davon ist mit einer einzigen Datei möglich, die keine Tabelle öffnen kann. Wenn die Datei jede Woche wächst, behalten Sie das Skript und führen Sie es bei jedem neuen Export aus, statt jedes Mal von Hand aufzuteilen. Und wenn Sie aufteilen, weil Sie die Daten irgendwohin senden müssen, denken Sie daran, dass die Teile die Arbeitskopien sind: Die Originaldatei ist diejenige, die Sie archivieren, und die Teile sind die, die Sie öffnen.

Lösung 2: Ganze Datei mit Power Query in das Datenmodell laden

Das Aufteilen funktioniert, wenn Sie gewöhnliche Arbeitsblätter brauchen, aber manchmal müssen Sie den ganzen Datensatz auf einmal analysieren, und dafür hat Excel eine zweite Tür: das Datenmodell. Power Query kann eine CSV-Datei in das Datenmodell laden statt in das Raster, und das Datenmodell nutzt Komprimierung und fasst zig Millionen Zeilen im Arbeitsspeicher, weit jenseits der Rastergrenze von 1.048.576 Zeilen. Sie können nicht alle Zeilen auf einem Blatt sehen, weil die Rastergrenze weiterhin für das gilt, was angezeigt wird, aber Sie können PivotTables und PivotCharts über den vollständigen Datensatz erstellen, und die Aggregationen zählen jede Zeile, einschließlich derjenigen, die das Raster nie zeigen könnte. Das ist die richtige Lösung, wenn die Frage eine Zusammenfassung, eine Summe oder eine Pivot-Auswertung ist, statt eine Zeile für Zeile Betrachtung.

Die Schritte sind in Excel für Windows bewusst langweilig: Öffnen Sie eine leere Arbeitsmappe, gehen Sie zu Daten, dann zu Daten abrufen, dann zu Aus Datei, dann zu Aus Text/CSV, wählen Sie die Datei, und wählen Sie in der Vorschau Laden in, dann Nur Verbindung erstellen, und aktivieren Sie Diese Daten zum Datenmodell hinzufügen, statt in eine Tabelle zu laden. Erstellen Sie dann eine PivotTable aus dem Datenmodell, und die Pivot-Auswertung liest den vollständigen Datensatz. Die dokumentierte Anleitung von Microsoft für Datensätze, die zu groß für das Raster sind, beschreibt genau diesen Weg, und sie warnt ebenfalls erneut davor, über die Originaldatei zu speichern, weil das Raster weiterhin nur die ersten Zeilen enthält, wenn Sie versehentlich in eine Tabelle laden.

Zwei Vorbehalte gehören hierher, offen ausgesprochen. Der erste ist, dass der Weg über das Datenmodell Excel für Windows mit Power Query braucht, und Excel für Mac nur begrenzt Datenmodelle erstellen und verwenden kann, also müssen Mac-Nutzerinnen und Mac-Nutzer vielleicht Windows verwenden oder stattdessen das Rezept zum Aufteilen nehmen. Der zweite ist, dass eine PivotTable über dem Datenmodell Aggregatfragen beantwortet, keine Zeilenfragen: Sie können den ganzen Datensatz summieren, zählen und gruppieren, aber Sie können nicht durch Zeile 3.000.000 auf einem Blatt blättern, weil das Blatt weiterhin bei 1.048.576 endet. Wenn Sie einzelne Zeilen jenseits der Grenze sehen müssen, teilen Sie die Datei auf. Wenn Sie Summen über alle Zeilen brauchen, verwenden Sie das Datenmodell.

Lösung 3: Nur die Zeilen ansehen, die Sie brauchen

Meistens braucht in Wirklichkeit niemand alle Millionen Zeilen auf einmal auf dem Bildschirm. Sie brauchen die Zeilen für einen Kunden, einen Monat, eine Region oder einen Fehlercode, und der Rest der Datei ist ein Zusammenhang, den Sie nie lesen werden. Die Datei vor dem Öffnen herunterzufiltern ist schneller als sie aufzuteilen, und es erzeugt eine kleine Datei, die sich in Excel normal öffnet, ohne Teile, die Sie verwalten müssen. Der Filter läuft in einem Skript, das Zeile für Zeile liest, also funktioniert er bei Dateien jeder Größe, und die Ausgabe ist eine vollständige CSV-Datei mit eigener Kopfzeile, bereit zum Öffnen.

Das Rezept unten verwendet nur die Python-Standardbibliothek, und es wurde an derselben Beispieldatei mit 1.200.000 Zeilen getestet: Nur die Zeilen zu behalten, bei denen die Spalte total größer als 90 ist, hat eine Datei mit 74.227 Zeilen erzeugt, mit 74.226 Datenzeilen, in etwa zwei Sekunden, und die erste behaltene Zeile ist die, die Sie erwarten würden, nämlich die Zeile, bei der der Wert total erstmals 90 überschreitet. Ändern Sie die Bedingung passend zu Ihrer eigenen Frage, einem Datumsbereich, einem Kundennamen oder einem Statuswert, und die Ausgabe ist der Ausschnitt der Datei, den Sie tatsächlich brauchen. Dasselbe Muster funktioniert für die ersten N Zeilen, mit einem Befehl head oder einem Zähler, der nach N Zeilen stoppt, und für die letzten N Zeilen, mit einem Befehl tail, wenn Sie nur prüfen müssen, wie eine Datei endet.

Das Filtern beantwortet auch die Frage, ob es sich überhaupt lohnt, die Datei zu öffnen. Zählen Sie zuerst die Zeilen, die zu Ihrer Bedingung passen, und wenn die Zahl klein ist, öffnen Sie die gefilterte Datei. Wenn die Zahl weiterhin über der Rastergrenze liegt, filtern Sie weiter, oder fassen Sie stattdessen zusammen: Gruppieren Sie die Datei nach Monat, nach Kunde oder nach Status, und öffnen Sie die Zusammenfassung, die wenige hundert Zeilen statt einer Million hat. Eine Zusammenfassung ist oft ohnehin das eigentliche Ergebnis, und es ist die Datei, die Ihre Kolleginnen und Kollegen tatsächlich öffnen können, was sich lohnt zu bedenken, wenn Sie Ergebnisse an jemand anderen senden.

Große CSV-Datei auf die benötigten Zeilen filtern
import csv

kept = 0
with open('big.csv', newline='') as src, \
     open('filtered.csv', 'w', newline='') as dst:
    reader = csv.DictReader(src)
    writer = csv.DictWriter(dst, fieldnames=reader.fieldnames)
    writer.writeheader()
    for row in reader:
        if int(row['total']) > 90:
            writer.writerow(row)
            kept += 1
print(f'kept {kept} rows')

# Verified on the 1,200,000-row sample file:
# kept 74226 rows -> filtered.csv has 74,227 lines
# First kept row: 91,Customer 91,91
# The script reads one row at a time, so memory stays flat
# no matter how large the file is.

Beachten Sie, was der Filter über die Datei selbst beweist: Nichts in dem Rezept kümmert sich darum, wie groß die Datei ist, weil das Skript nie mehr als eine Zeile im Arbeitsspeicher hält. Das ist der Unterschied zwischen einem Werkzeug, das für Datenströme gebaut ist, und einem Werkzeug, das für Raster gebaut ist. Eine Tabelle lädt alles, was sie zeigt, auf einmal in den Arbeitsspeicher, weshalb sie eine Grenze hat. Ein Skript, das im Strom arbeitet, verarbeitet eine Zeile, schreibt sie oder verwirft sie, und geht weiter, weshalb es keine praktische Grenze hat. Wenn die Datei zu groß für das Raster ist, greifen Sie zuerst zum Werkzeug für den Datenstrom, und öffnen Sie nur das kleine Ergebnis im Raster.

Lösung 4: Das richtige Werkzeug für die Aufgabe verwenden

Wenn Sie immer wieder an die Rastergrenze stoßen, lautet die ehrliche Antwort vielleicht, dass eine Tabelle das falsche Werkzeug für den Datensatz ist, und keine Lösung in Excel wird das ändern. Ein Texteditor ist das richtige Werkzeug, um eine große Datei zu prüfen: Er öffnet die ganze Datei als Text, lässt Sie nach einem Wert suchen und zeigt Ihnen die ersten und letzten Zeilen, ohne Zeilengrenze außer dem Arbeitsspeicher. Eine Datenbank ist das richtige Werkzeug, um eine große Datei zu analysieren: Importieren Sie die CSV-Datei in SQLite, das eine einzelne Datei auf Ihrem Rechner ist und keinen Server braucht, und eine Million Zeilen wird zu einer kleinen Tabelle, die Sie mit SQL abfragen, filtern und zusammenfassen können, ganz ohne Raster im Weg.

Die Wahl zwischen diesen Werkzeugen hängt von der Frage ab. Wenn die Frage lautet, was in der Datei steht, verwenden Sie einen Texteditor. Wenn die Frage lautet, welche Zeilen zu einer Bedingung passen, verwenden Sie ein Skript zum Filtern. Wenn die Frage eine Summe oder eine Pivot-Auswertung über die ganze Datei ist, verwenden Sie das Datenmodell oder eine Datenbank. Wenn die Frage ein einmaliger Blick auf wenige Zeilen ist, verwenden Sie head und tail in einem Terminal. Nur wenn die Frage eine Zeile für Zeile Bearbeitung einer Teilmenge ist, gehören die Daten überhaupt in eine Tabelle, und dann nur die Teilmenge, aufgeteilt oder gefiltert, bis sie hineinpasst. Einen Datensatz mit einer Million Zeilen in ein Raster mit einer Million Zeilen zu zwingen ist die Fehlanpassung, nicht der Datensatz.

Es gibt hier auch einen Punkt für die Planung, für Menschen, die solche Dateien erzeugen. Wenn Sie jede Woche eine CSV-Datei exportieren und sie immer weiter über eine Million Zeilen wächst, exportieren Sie nicht jedes Mal die ganze Historie, sondern nur die neuen Zeilen, oder nur die Zusammenfassung, oder teilen Sie den Export schon an der Quelle nach Monat auf. Der Export, der in eine Tabelle passt, ist der Export, den Menschen tatsächlich verwenden können, und ein Export, den niemand öffnen kann, ist kein Ergebnis, wie vollständig er auch ist. Teilen Sie den Empfängerinnen und Empfängern die Zeilenzahl im Dateinamen mit oder in einer einzeiligen Notiz zur Datei, damit niemand die Grenze entdeckt, indem Daten durch ein gekürztes Speichern verloren gehen.

Vier Lösungen, die nicht funktionieren

Vor den Lösungen, die funktionieren, lohnt es sich, die vier Lösungen wegzuräumen, die nicht funktionieren, weil jede davon Zeit verschwendet und eine davon Daten zerstört. Die erste ist, die Datei in ein ZIP-Archiv zu komprimieren. Komprimierung verkleinert die Datei auf der Festplatte, manchmal erheblich, weil sich CSV-Text gut komprimieren lässt, aber in dem Moment, in dem Sie sie entpacken oder importieren, enthalten die Rohdaten weiterhin dieselbe Zahl an Zeilen, und Excel endet weiterhin bei 1.048.576. Komprimierung ändert die Speicherung, nicht die Zeilenzahl, und die Rastergrenze zählt Zeilen, nicht Megabyte.

Die zweite ist, die Datei als .xlsx zu speichern oder jemanden zu bitten, sie für Sie umzuwandeln. Das Format .xlsx hat dieselbe Rastergrenze von 1.048.576 Zeilen wie eine CSV-Datei, die in Excel geöffnet wird, weil die Grenze zum Arbeitsblatt gehört, nicht zum Dateiformat, also ändert das Umwandeln der Datei nichts daran, wie viele Zeilen auf ein Blatt passen. Die dritte ist, die Datei in Google Sheets zu öffnen und zu hoffen, dass die Zellengrenze Sie rettet. Sheets kann mehr Zeilen enthalten als Excel, wenn die Datei schmal ist, weil es 20 Millionen Zellen statt Zeilen zählt, aber eine breite Datei erreicht die Zellengrenze früher, zusätzlich gilt eine Importgrenze von 100 MB, und eine Datei mit 5 Millionen Zeilen überschreitet auch Sheets, also funktioniert die Lösung nur bei Dateien knapp über der Excel-Grenze, nicht bei wirklich großen Dateien.

Die vierte ist, die Datei von Hand in Excel aufzuteilen, indem Zeilen in neue Blätter oder neue Arbeitsmappen kopiert werden. Das geht von der gekürzten Arbeitsmappe aus, in der die Zeilen jenseits der Grenze bereits fehlen, also kann die Kopie sie nie enthalten, und das manuelle Kopieren ist langsam, fehleranfällig und beschränkt auf die Zeilen, die Excel überhaupt geladen hat. Teilen Sie von der Originaldatei auf der Festplatte aus auf, mit einem Skript, bevor Excel sie berührt, wie das Rezept oben es macht. Und die Lösung, die Daten aktiv zerstört statt nur zu versagen, ist das Speichern über das Original aus der gekürzten Arbeitsmappe, was die nicht geladenen Zeilen endgültig löscht, wie die begleitende Anleitung zum Speichern vollständig erklärt.

Was das für Dateien aus dem Konverter auf dieser Seite bedeutet

Der Konverter auf dieser Seite erzeugt genau die Art von Datei, um die es in dieser Anleitung geht, also lohnt es sich, sein Verhalten offen darzustellen, geprüft am echten Code statt angenommen. Die Umwandlungsmaschine wurde auf diesem Rechner an einer JSON-Stichprobe mit 10.000 Zeilen ausgeführt und war in 28 Millisekunden fertig, mit 10.000 Zeilen und 3 Spalten, und an einer Stichprobe mit 100.000 Zeilen war sie in 218 Millisekunden fertig, mit einer CSV-Datei von 2,35 MB. Ein früherer Lauf in derselben Reihe hat 100.000 Zeilen in etwa 0,4 Sekunden und 500.000 Zeilen in etwa 1,4 Sekunden Maschinenzeit gemessen, also verarbeitet der Konverter selbst große Dateien bequem, und der Engpass ist das Programm, das das Ergebnis öffnet, nicht die Umwandlung.

Diese Unterscheidung ist wichtig, weil sie entscheidet, wo Sie das Problem beheben. Wenn sich Ihre umgewandelte Datei in Excel nicht vollständig öffnen lässt, ist die Umwandlung nicht fehlgeschlagen und die Datei nicht beschädigt: Die Datei enthält jede Zeile, Byte für Byte, und Excel hat nur die ersten 1.048.576 davon geladen. Prüfen Sie die Zeilenzahl mit dem Rezept oben in dieser Anleitung, und wenn die Datei über der Grenze liegt, teilen Sie sie mit dem Skript oben auf, oder laden Sie sie über Power Query in das Datenmodell, oder filtern Sie sie auf die Zeilen herunter, die Sie brauchen. Wandeln Sie nicht erneut um in der Hoffnung auf ein anderes Ergebnis, weil der Konverter dieselbe vollständige Datei erzeugt und Excel sie auf dieselbe Weise kürzt.

Ein weiteres Detail des Konverters ist hier wichtig. Der Download ist reines UTF-8 ohne Byte-Order-Mark, was die sauberste Form für die meisten Werkzeuge ist, und der Konverter lässt Sie das Trennzeichen vor dem Herunterladen wählen. Keine der beiden Entscheidungen beeinflusst die Zeilengrenze in irgendeiner Weise: Eine Datei mit Semikolon als Trennzeichen kürzt sich bei genau derselben Zeile wie eine Datei mit Komma als Trennzeichen, und eine UTF-8-Datei kürzt sich bei genau derselben Zeile wie eine Datei in einer älteren Kodierung. Wenn sich Ihre umgewandelte Datei zusätzlich in einer Spalte öffnet oder verstümmelte Zeichen zeigt, sind das getrennte Probleme mit getrennten Lösungen, die in den begleitenden Anleitungen unten behandelt werden, und sie lassen sich in demselben Import beheben, der auch die Größe behandelt. Beheben Sie das Öffnen, teilen Sie die Datei bei Bedarf auf, und speichern Sie niemals über den Download aus Excel.

Geprüfte Ausgabe des Konverters bei großen Beispielen
Engine check, run on this machine (2026-11-09):
10,000 rows -> 28 ms, 3 columns, 226,762 bytes
100,000 rows -> 218 ms, 3 columns, 2.35 MB

Sample output, first rows:
id,name,total
1,Customer 1,1
2,Customer 2,2

Earlier verified timings in this series:
100,000 rows / 10 MB JSON in about 0.4 s
500,000 rows / 25 MB JSON in about 1.4 s engine time

The converter finishes in milliseconds. The file it writes
is complete. Excel is the bottleneck, not the conversion.

Wenn die Datei, die Sie brauchen, die umgewandelte Ausgabe selbst ist und sie zu groß für Excel ist, ist der sauberste Weg oft, das JSON zu behalten und immer dann erneut umzuwandeln, wenn Sie eine frische CSV-Datei brauchen, statt eine riesige CSV-Datei zu behalten und sie jedes Mal aufzuteilen. Das JSON ist die Quelle, die CSV-Datei ist eine Momentaufnahme, und das Neuerzeugen aus der Quelle ist immer sauberer als das Reparieren einer Datei, die bereits durch eine Tabelle gegangen ist. Das ist dieselbe Gewohnheit mit der Masterkopie, die die begleitende Anleitung zum Speichern empfiehlt, angewendet auf große Dateien: Behalten Sie die Quelle, exportieren Sie, was Sie brauchen, und teilen oder filtern Sie den Export, niemals die Quelle.

Prüfliste zur Vorbeugung: Erzeugen Sie CSV-Dateien, die Menschen tatsächlich öffnen können

Zeilengrenzen sind eine Fehlanpassung zwischen der schreibenden und der lesenden Seite, also bedeutet Vorbeugung, dass die schreibende Seite die Größe angibt und die lesende Seite prüft, bevor sie vertraut. Gehen Sie diese Prüfliste durch, wenn Sie eine CSV-Datei erzeugen oder erhalten, und die nächste Person, die sie anfasst, braucht diese Anleitung nicht. Erstens: Zählen Sie die Zeilen, bevor Sie eine Datei senden, und schreiben Sie die Zahl in den Dateinamen oder in eine einzeilige Notiz zur Datei, damit die Empfängerin oder der Empfänger vor dem Öffnen weiß, ob die Datei in eine Tabelle passt. Eine Datei mit dem Namen customers-2026-11-09-1200000-rows.csv warnt ihre Leserin oder ihren Leser; eine Datei mit dem Namen customers.csv tut es nicht.

Zweitens: Teilen Sie schon an der Quelle auf, wenn der Export die Grenze überschreiten wird. Wenn die Daten aus einer Datenbank kommen, exportieren Sie nach Monat oder nach Region, sodass jede Datei für sich in ein Raster passt, statt die ganze Historie in eine Datei zu exportieren, die niemand öffnen kann. Drittens: Behalten Sie die Quelldaten, ob das nun JSON, eine Datenbank oder eine Arbeitsmappe ist, damit eine Datei, die gekürzt oder überschrieben wurde, sauber neu erzeugt werden kann, statt repariert werden zu müssen. Viertens: Speichern Sie niemals über ein Original aus einer gekürzten Arbeitsmappe, und prüfen Sie jede Datei, die Sie erhalten, in einem Texteditor oder mit einer Zeilenzählung, bevor Sie eine Tabelle darüber speichern lassen.

Fünftens: Sagen Sie den Empfängerinnen und Empfängern, wie sie die Datei öffnen sollen: Eine einzeilige Notiz, dass die Datei 1,2 Millionen Zeilen enthält und mit dem Skript in dieser Anleitung aufgeteilt oder über Power Query in das Datenmodell geladen werden sollte, verhindert die ganze Klasse von Problemen, und sie kostet nichts, wenn Sie sie der Datei beilegen. Die meisten CSV-Schreckensgeschichten enden damit, dass jemand zu spät entdeckt, dass die gekürzte Datei die einzige Kopie war oder dass eine Zusammenfassung aus einem Teildatensatz berechnet wurde. Zählen Sie zuerst, teilen oder filtern Sie vor dem Öffnen, und halten Sie das Original sicher, und eine große CSV-Datei wird wieder zu einer gewöhnlichen Datei.

Verwandte Anleitungen

Häufig gestellte Fragen

Wie viele Zeilen kann Excel aus einer CSV-Datei öffnen?

Höchstens 1.048.576 Zeilen pro Arbeitsblatt, einschließlich der Kopfzeile, also kann eine Datei mit Kopfzeile höchstens 1.048.575 Datenzeilen enthalten. Das ältere Format .xls fasst nur 65.536 Zeilen pro Blatt. Die Grenze gehört zum Arbeitsblatt, nicht zum CSV-Format, das selbst keine Zeilengrenze setzt, also öffnet sich dieselbe Datei in einem Texteditor oder in einer Datenbank vollständig.

Warum sagt Excel, dass mein Datensatz zu groß für das Raster ist?

Weil die Datei mehr Zeilen enthält, als das Arbeitsblatt zeigen kann. Excel lädt die ersten 1.048.576 Zeilen, warnt Sie, dass der Datensatz zu groß für das Raster ist und dass das Speichern die Daten verliert, die nicht geladen wurden, und lässt den Rest in der Datei, aber außerhalb der Arbeitsmappe. Zählen Sie die Zeilen zuerst mit wc -l oder einem Python-Skript, teilen Sie dann die Datei auf, laden Sie sie in das Datenmodell, oder filtern Sie sie auf die Zeilen herunter, die Sie brauchen.

Löscht das Speichern einer zu großen CSV-Datei in Excel Zeilen?

Ja. Das Speichern der gekürzten Arbeitsmappe schreibt nur die Zeilen zurück, die Excel geladen hat, also sind die Zeilen jenseits von 1.048.576 aus der gespeicherten Datei endgültig verschwunden. Speichern Sie niemals über die Originaldatei aus einer Arbeitsmappe, die Sie vor der Rastergrenze gewarnt hat. Schließen Sie ohne zu speichern, und holen Sie die fehlenden Zeilen aus der Originaldatei, aus einer Sicherung, aus dem Versionsverlauf in OneDrive oder aus dem Quellsystem zurück, aus dem die Datei stammt.

Wie teile ich eine große CSV-Datei in kleinere Dateien auf?

Verwenden Sie ein Skript, das die Datei Zeile für Zeile liest und höchstens 1.048.575 Datenzeilen pro Teil schreibt, wobei die Kopfzeile oben in jedem Teil wiederholt wird. Das Python-Skript in dieser Anleitung hat eine getestete Datei mit 1.200.000 Zeilen in zwei Teile aufgeteilt, und das Wiederzusammenfügen hat die Originaldatei byteweise identisch erzeugt. Teilen Sie niemals auf, indem Sie Zeilen in Excel kopieren, weil die Zeilen jenseits der Grenze in der Arbeitsmappe bereits fehlen.

Kann Google Sheets eine CSV-Datei öffnen, die Excel nicht öffnen kann?

Manchmal. Google Sheets zählt Zellen statt Zeilen, mit einer Grenze von 20 Millionen Zellen pro Tabelle und einer Importgrenze von 100 MB, also kann eine schmale Datei mehr Zeilen enthalten, als Excel erlaubt, während eine breite Datei weniger enthält. Eine Datei mit 10 Spalten kann in Sheets etwa 2 Millionen Zeilen enthalten, während eine Datei mit 50 Spalten etwa 400.000 enthält. Eine Datei mit 5 Millionen Zeilen überschreitet auch Sheets, also teilen Sie die Datei bei wirklich großen Dateien auf oder verwenden Sie stattdessen eine Datenbank.

Kann Power Query eine CSV-Datei mit mehr als 1 Million Zeilen öffnen?

Ja, wenn Sie sie in das Datenmodell laden statt in das Raster. Verwenden Sie in Excel für Windows Daten, dann Daten abrufen, dann Aus Datei, dann Aus Text/CSV, und wählen Sie Laden in mit Nur Verbindung erstellen und Diese Daten zum Datenmodell hinzufügen. Sie können dann PivotTables über den vollständigen Datensatz erstellen. Das Raster zeigt weiterhin höchstens 1.048.576 Zeilen, und Excel für Mac hat nur begrenzte Unterstützung für das Datenmodell, also brauchen Mac-Nutzerinnen und Mac-Nutzer vielleicht stattdessen das Rezept zum Aufteilen.

Verarbeitet der JSON-zu-CSV-Konverter auf dieser Seite große Dateien?

Ja. Die Umwandlungsmaschine wurde auf diesem Rechner geprüft: 10.000 Zeilen wurden in 28 Millisekunden umgewandelt und 100.000 Zeilen in 218 Millisekunden, und ein früherer geprüfter Lauf hat 500.000 Zeilen in etwa 1,4 Sekunden Maschinenzeit gemessen. Der Konverter schreibt eine vollständige CSV-Datei mit jeder Zeile. Wenn sich das Ergebnis in Excel nicht vollständig öffnen lässt, ist die Datei in Ordnung und Excel ist der Engpass, also teilen Sie die Datei auf, laden Sie sie in das Datenmodell, oder filtern Sie sie auf die Zeilen herunter, die Sie brauchen.

Wandeln Sie frisch um, und teilen Sie dann auf, wenn Excel die Datei nicht fassen kann

Fügen Sie Ihr JSON in den Konverter auf dieser Seite ein und laden Sie eine saubere CSV-Datei mit jeder Zeile genau so herunter, wie sie geschrieben wurde. Wenn die Datei mehr als 1.048.575 Datenzeilen enthält, kann Excel sie nicht vollständig auf einem Blatt zeigen, also teilen Sie sie mit dem Skript in dieser Anleitung auf, oder laden Sie sie in das Datenmodell. Kein Hochladen, keine Anmeldung, nichts verlässt Ihre Browserregisterkarte.

JSON-zu-CSV-Konverter öffnen
Alle Anleitungen