Cookies für Statistik und Werbung
Wir setzen Cookies für Statistik und Werbung ein, beides geht an Google. Wenn du ablehnst, ändert sich für dich sichtbar nichts.Zur Datenschutzseite
NDJSON kannst du hier kostenlos und ohne Konto in XLSX umwandeln: Datei oben ablegen, und ein, zwei Sekunden später steht das Ergebnis zum Herunterladen bereit. Die Umwandlung läuft in deinem eigenen Browser, die Datei wird also nie hochgeladen — das klappt unter Windows, macOS und Linux ebenso wie auf iPhone und Android, und es funktioniert selbst dann noch, wenn du das Netz abschaltest.
Bis zu 100 Dateien auf einmal. Gemischte Formate sind kein Problem.
Sie werden nacheinander umgewandelt und kommen zusammen als ZIP zurück.
NDJSON in XLSX
Ein Auszug aus einem Warenwirtschaftssystem oder einem Log geht bei den meisten Empfängern an ein Skript oder eine Datenbank. Geht er stattdessen an eine Steuerberaterin, einen Wirtschaftsprüfer oder eine Controlling-Abteilung, die in Excel arbeitet, ist eine Arbeitsmappe die passendere Übergabe als eine reine Textdatei.
Der Unterschied zeigt sich beim Öffnen: Eine XLSX-Datei erspart genau das Gespräch, das nach einer CSV-Datei folgt — warum die Bestellnummer plötzlich eine Dezimalzahl ist oder warum die führende Null aus der Kundennummer verschwunden ist.
Eine Textdatei kennt keine Typen; Excel rät beim Öffnen, was jede Spalte ist, und genau dabei passiert der bekannte Schaden — führende Nullen verschwinden, ein datumsähnlicher Wert wird zum Datum, eine lange Kennnummer verliert ihre letzten Stellen an eine Gleitkommazahl.
Die Datensätze in einer NDJSON-Datei tragen ihren Typ dagegen schon in sich: eine Menge ist eine Zahl, ein Kennzeichen ein Wahrheitswert, eine als Text exportierte Kennnummer bleibt Text. Diese Unterscheidung wird beim Schreiben in die Arbeitsmappe übernommen, sodass eine Kennnummer wie 00714 tatsächlich als 00714 ankommt.
Ein Feld, dessen Wert ein Objekt ist, wird zu je einer Spalte pro Blattwert, benannt nach dem Pfad: Ein verschachteltes Kundenobjekt mit einem Namen ergibt eine Spalte kunde.name. Ein Array wird entsprechend nach Position aufgeteilt, tags.0 und tags.1 für eine Liste mit zwei Einträgen.
Das macht die Tabelle breiter, als die Zahl der eigentlichen Felder vermuten lässt. Ein Ereignisdatensatz mit einem Request-, einem Nutzer- und einem Kontextblock kann aus sechs Feldern dreißig Spalten machen — für den Empfänger lohnt es sich, vorher mit einem Werkzeug wie jq nur die relevanten Felder herauszuziehen.
Die Arbeitsmappe hat ein einziges Blatt, weil eine zeilenweise Datei ein einzelner Datenstrom ohne innere Unterteilung ist, auf die sich mehrere Reiter abbilden ließen. Der Name des Blatts stammt aus dem Dateinamen ohne Endung, gekürzt auf die 31 Zeichen, die ein Blattname erlauben darf.
Enthält der Export tatsächlich mehrere Arten von Datensätzen — etwa drei verschiedene Ereignistypen in einer Log-Datei —, ist es meist lesbarer, die Quelldatei vorher zu trennen und mehrere Arbeitsmappen zu erzeugen, als eine einzige breite Tabelle mit einer Unterscheidungsspalte anzubieten.
Jede Zeile der Quelldatei steht für sich, und nichts verlangt, dass die zweite dieselben Felder hat wie die erste. Die Umwandlung sammelt jeden Schlüssel, der irgendwo in der Datei vorkommt, und legt dafür eine Spalte an — fehlt der Wert in einer Zeile, bleibt die Zelle leer.
Nichts geht dabei verloren, aber eine Datei mit drei gemischten Ereignistypen ergibt eine Tabelle, in der jede Zeile nur ein Drittel der Spalten nutzt. Für den Empfänger wirkt das wie ein defekter Export, obwohl er vollständig ist — das Filtern nach einem Ereignistyp vor dem Umwandeln lohnt sich fast immer.
Eine Zeile der Quelldatei wird zu einer Zeile im Blatt, die Gesamtzahl also die Zeilenanzahl abzüglich leerer Zeilen. Wer das vorab wissen will, zählt die Zeilen der Ursprungsdatei, etwa mit wc -l oder der Zeilennummer am Ende eines Editors.
Ein paar tausend Zeilen öffnen sich sofort und lassen sich angenehm bearbeiten; mehrere hunderttausend Zeilen öffnen langsam, filtern langsam und werden von manchem E-Mail-System als Anhang abgelehnt. Ab einer bestimmten Größe lohnt sich eine Verdichtung vor der Umwandlung — eine Zusammenfassung pro Tag oder pro Kunde statt jeder Einzelzeile. Weil das Blatt vollständig im Arbeitsspeicher des eigenen Geräts entsteht, ist genau dieser Speicher die tatsächliche Grenze, nicht eine von dieser Seite gesetzte Zahl.
Zwei Prüfungen dauern zusammen eine Minute: die Spaltenzahl anschauen — deutlich mehr Spalten als erwartete Felder bedeutet meist ein verschachteltes Objekt oder ein aufgelöstes Array — und die Kennnummern- und Datumsspalten kontrollieren, ob sie so aussehen, wie sie sollen.
Ein Blick in den Inhalt selbst lohnt sich ebenso. Ein zeilenweiser Export aus einem System enthält meist jedes Feld, das das System überhaupt ausgibt — interne Kennungen, technische Flags, gelegentlich eine E-Mail-Adresse, die dort niemand erwartet hätte. In einer Tabelle fällt das eher auf als in einer Log-Datei, und besser vorher als nachdem die Datei die eigene Organisation verlassen hat.
Werte werden genau so übernommen, wie der Datensatz sie enthielt, ohne Rundung oder Anpassung an ein Zahlenformat. Ein Preis von 12.5 landet als die Zahl 12,5 in der Zelle, dargestellt nach der lokalen Einstellung von Excel — und ein als ISO-Zeitstring exportierter Zeitstempel bleibt Text, nicht Excel-Datum.
Das ist Absicht, keine Lücke: Ein ISO-Zeitstempel ist im JSON Text, und ihn automatisch in ein Excel-Datum umzuwandeln würde eine Zeitzone erraten, die niemand angegeben hat. Wer sortierbare Datumswerte braucht, löst das in der Arbeitsmappe selbst — mit einer Formel oder Text-in-Spalten, einmal von jemandem gemacht, der die Zeitzone der Quelle tatsächlich kennt.
Sowohl das Einlesen der Zeilen als auch das Schreiben der Arbeitsmappe laufen im Browser-Tab. Nichts wird hochgeladen, ein Konto ist nicht nötig, und die freie Grenze liegt bei 100 MB — der Arbeitsspeicher des eigenen Geräts ist die tatsächliche Obergrenze.
Bei einem Auszug, der ohnehin gleich per E-Mail an eine externe Stelle geht, ist das mehr als eine Formalität: Ein Umweg über einen fremden Online-Dienst würde bedeuten, dass die Daten zwei Empfänger erreichen statt eines. Hier bleibt es bei dem einen, den man tatsächlich meinte.
Bis zu hundert Dateien lassen sich gleichzeitig ablegen, jede wird zu einer eigenen Arbeitsmappe. Das ist praktisch, wenn regelmäßig mehrere Auszüge entstehen — etwa ein NDJSON-Export pro Abteilung oder pro Zeitraum —, die alle auf demselben Weg zu einer Excel-Datei werden sollen.
Weil keine Serverkapazität dabei verbraucht wird, gibt es keine Warteschlange zwischen den Dateien, und ein Auftrag, der die hundert Dateien überschreitet, wird beim Ablegen still auf die ersten hundert begrenzt — der Rest muss in einem zweiten Durchgang folgen.
CSV ist die schlichtere Wahl derselben Idee, hat aber genau die Schwäche, die diese Umwandlung vermeidet: Eine Textdatei kennt keine Zelltypen, sodass Excel beim Öffnen selbst entscheidet, was jede Spalte ist — und dabei verschwinden führende Nullen und werden datumsähnliche Werte zu echten Daten.
Für einen Auszug, der weiterverarbeitet oder in ein anderes System eingelesen wird, ist CSV trotzdem oft die praktischere Form, weil sie kleiner ist und von so gut wie jedem Werkzeug gelesen wird. Für einen Auszug, der ein Mensch in Excel öffnet und dem er auf den ersten Blick vertrauen soll, ist die Arbeitsmappe die verlässlichere Übergabe.
Geht der Auszug an ein System oder ein Skript, ist eine CSV-Datei die passendere Wahl — oder die NDJSON-Datei selbst, wenn die Empfängerin oder der Empfänger technisch arbeitet und die Struktur ohnehin braucht. Eine Arbeitsmappe lohnt sich vor allem dann, wenn jemand die Daten heute anschauen will, ohne etwas zu installieren.
Für die deutsche Zusammenarbeit mit Steuerberatung oder Wirtschaftsprüfung ist genau das der übliche Fall: eine Auswertung, die noch am selben Tag geprüft werden muss, und eine Tabelle, deren Spalten auf den ersten Blick Sinn ergeben.
| NDJSON | XLSX | |
|---|---|---|
| Vollständiger Name | Newline-Delimited JSON | Excel-Arbeitsmappe |
| Dateiendung | .ndjson, .jsonl | .xlsx |
| Medientyp | application/x-ndjson | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| Erstmals veröffentlicht | 2013 | 2007 |
| Herausgegeben von | — | Microsoft |
| Spezifikation | — | ECMA-376 |
| Lizenzlage | Offener Standard | Offener Standard |
| Heutiger Stand | Aktuell | Aktuell |
| Öffnet im Browser | Kein Browser | Kein Browser |
| Stattdessen erwogen | JSON, CSV | CSV, ODS, Parquet |
Die üblichen Programme überschneiden sich nicht: NDJSON öffnest du in jq und pandas, XLSX in Microsoft Excel, LibreOffice Calc und Google Sheets — wer das Ergebnis bekommt, braucht also eines aus der zweiten Reihe.
Die beiden zielen auf verschiedene Arbeit: NDJSON auf den Austausch zwischen Programmen und das Streaming, XLSX auf die Bearbeitung. Das lohnt sich vorher abzuwägen — der Grund, aus dem es das eine gibt, ist meist der Grund, aus dem das andere unpraktisch ist.
XLSX kommt von Microsoft und stammt aus 2007, festgehalten in ECMA-376. Microsoft Excel, LibreOffice Calc und Google Sheets lesen das Format.
Nein. Diese Umwandlung läuft vollständig in deinem Browser, die Datei verlässt dein Gerät also nicht. Du kannst das selbst nachprüfen: Öffne den Netzwerk-Tab der Entwicklerwerkzeuge und wandle etwas um. Zu sehen sind die Seite selbst und die Statistik- und Werbeanfragen, mit denen dieser Dienst bezahlt wird — und keine einzige, die deine Datei trägt. Hinter genau diesem Paar steckt SheetJS, ein Tabellenleser und -schreiber in JavaScript; dein Browser lädt das einmal und behält es dann.
Ja. Kein Konto, kein Wasserzeichen und kein Tageskontingent, das sich verbraucht — es läuft auf deinem eigenen Rechner, du darfst also so oft wiederkommen, wie du willst. Dateien bis 100 MB verarbeitet der Browser, 100 auf einmal. SheetJS wird auf deinen Rechner geladen und läuft dort — deshalb gibt es dafür keine Zählung.
NDJSON und XLSX beschreiben Inhalte auf grundverschiedene Weise. Die Umwandlung ist deshalb ein Nachbau und keine Kopie: originalgetreu, aber nicht Byte für Byte dasselbe. Verschachtelte Objekte werden zu Spalten flachgeklopft. Tief verschachtelte Daten verlieren dabei ihre Struktur.
Für die Umwandlung selbst nicht — sie läuft in dem Browser, den du ohnehin offen hast. Zum Öffnen brauchst du danach das Programm, das auf deinem Gerät üblicherweise Excel Workbook anzeigt.