Zum Hauptinhalt springen

JSON zu Excel

JSON zu Excel erzeugt eine echte .xlsx-Arbeitsmappe direkt in Ihrem Browser – keine in .xls umbenannte CSV-Datei. Zahlen bleiben Zahlen, Text bleibt Text, die Kopfzeile ist fixiert und gefiltert, und verschachtelte Objekte werden zu expliziten Spaltenpfaden. Es findet kein Upload statt.

Nur lokal
JSON
493 B30 ZeilenZ. 1, Sp. 1
Arbeitsmappenvorschau5.7 KB
Arbeitsmappenvorschau
idcustomer.namecustomer.emailtotalcurrencytags[0]tags[1]shippednote
ord_1041Ada Lovelace[email protected]148.5GBPprioritygiftTRUE—
ord_1042Grace Hopper[email protected]92USDstandard—FALSEBeim Nachbarn abgeben
2 Zeilen · 9 Spalten · 1 numerisch

Wie funktioniert JSON zu Excel?

Fast jeder „JSON zu Excel“-Konverter im Web erzeugt eine CSV-Datei mit der Endung .xls, und der Unterschied ist wichtiger, als er klingt. Eine CSV-Zelle ist Text und nichts sonst. Excel rät dann: Es liest 00123 als die Zahl 123 und verschluckt die führenden Nullen, es entscheidet, dass 2026-10-03 ein Datum ist, ob Sie eines wollten oder nicht, und es macht aus 1e5 Hunderttausend. Das ist Excel, das hilfreich sein will, und es gibt keine Möglichkeit, das zu stoppen, denn die Datei trägt keine Typen, denen man widersprechen könnte.

Eine Arbeitsmappe trägt Typen. Dieses Tool schreibt SpreadsheetML – die XML-Teile in einer .xlsx –, sodass eine JSON-Zahl zu einer numerischen Zelle wird, ein JSON-String zu einer Textzelle und ein Boolean zu einem echten Boolean. "00123" bleibt 00123, weil das Dokument sagt, dass es ein String ist.

Verschachtelte Objekte und Arrays

Eine Tabellenkalkulation ist ein Rechteck und JSON ist ein Baum, also muss etwas nachgeben. Gewählt wird hier eine explizite Pfadkodierung, dieselbe, die das JSON-zu-CSV-Tool verwendet: customer.name für ein Objekt-Member und tags[0] für einen Array-Index. Die beiden Notationen sind absichtlich verschieden, damit ein Spaltenname nie mehrdeutig sein kann, woraus er stammt.

Das Spaltenset ist die Vereinigung der Felder jedes Datensatzes in der Reihenfolge des ersten Auftretens. Die naheliegende Implementierung liest die Schlüssel aus Datensatz eins und verliert alles, was später auftaucht – eine optionale Notiz bei einer Bestellung von fünfzig, einen Rabatt, der nur manchmal gilt. Diese Felder bekommen hier eine Spalte, überall sonst mit leeren Zellen.

Was die Arbeitsmappe enthält

Eine fette, fixierte Kopfzeile, damit die Spaltennamen beim Scrollen sichtbar bleiben; ein AutoFilter, mit dem sich jede Spalte per Klick eingrenzen lässt; und Spaltenbreiten, gemessen am breitesten Wert jeder Spalte, statt beim Excel-Standard zu bleiben. Das Archiv schreibt derselbe ZIP-Writer, den auch der Batch-Bildexport nutzt – keine Tabellenkalkulations-Bibliothek wird geladen, denn das Format hat sich seit 2006 nicht geändert, und eine Abhängigkeit dafür wäre das größte Stück im Bundle dieser Route.

JSON-Eingabe

[
  { "id": 1, "user": { "name": "Ada" }, "tags": ["a","b"], "vip": true },
  { "id": 2, "user": { "name": "Grace" }, "tags": ["c"] }
]

Zellen der Arbeitsmappe

A1: id      B1: user.name   C1: tags[0]   D1: tags[1]   E1: vip
A2: 1       B2: Ada         C2: a         D2: b         E2: TRUE
A3: 2       B3: Grace       C3: c         D3: (empty)   E3: (empty)

JSON-Eingabe → Zellen der Arbeitsmappe

JSON-Eingabe

[
  { "id": 1, "user": { "name": "Ada" }, "tags": ["a", "b"], "vip": true },
  { "id": 2, "user": { "name": "Grace" }, "tags": ["c"], "note": "gift" }
]

Zellen der Arbeitsmappe

id  user.name  tags[0]  tags[1]  vip   note
1   Ada        a        b        true
2   Grace      c                       gift

Welche Optionen und Sonderfälle unterstützt JSON zu Excel?

Technische Referenz und Optionen
ParameterTypStandardVerhalten & Sonderfälle
Ausgabeformat.xlsxSpreadsheetMLEine echte OOXML-Arbeitsmappe: Zellen mit Typ, eine fixierte Kopfzeile, ein AutoFilter und gemessene Spaltenbreiten. Eine in .xls umbenannte CSV kann nichts davon enthalten – genau darin liegt der ganze Unterschied.
ZahlenZelltypnumerischEine JSON-Zahl wird zu einer numerischen Zelle, sodass Summen und Durchschnitte sofort funktionieren. Eine als JSON-String geschriebene Zahl bleibt ein String – genau das bewahrt Artikelnummern, Telefonnummern und führende Nullen.
Arraysexplode | joinexplodeExplode erzeugt tags[0], tags[1] und behält jedes Element. Join fasst ein Array aus Skalaren in einer einzigen Zelle zusammen, getrennt durch Ihr Trennzeichen – meist das, was jemand beim Lesen der Tabelle haben will, und verlustbehaftet dazu. Ein Array aus Objekten wird immer mit explode behandelt, denn Join würde die Struktur zerstören.
Verschachtelte ObjekteSpaltenpfadcustomer.namePunkte für Objekt-Member, Klammern für Array-Indizes – so bleiben beide unterscheidbar und das Spaltenset eindeutig. Ein Konverter, der [object Object] in eine Zelle klebt, ist genau der Fehler, den das verhindert.
SpaltensetVereinigungalle DatensätzeJedes Feld, das in irgendeinem Datensatz vorkommt, in der Reihenfolge des ersten Auftretens. Die Kopfzeile aus dem ersten Datensatz zu lesen ist der häufigste Weg, wie ein Export stillschweigend Daten verliert.
Fixierte KopfzeileBooleantrueFixiert Zeile 1, damit die Spaltennamen beim Scrollen durch einen langen Export sichtbar bleiben. Excel nennt das „Fenster fixieren“; es wird in die Ansicht des Arbeitsblatts geschrieben, statt es dem Leser zu überlassen.
AutoFilterBooleantrueFügt der Kopfzeile die Filter-Dropdowns hinzu. Benötigt mindestens eine Datenzeile, denn ein Filter über einer bloßen Kopfzeile hätte nichts zu filtern.
Form auf oberster Ebenearray | objectarrayEin Array aus Datensätzen ist die erwartete Eingabe. Ein einzelnes Objekt wird zu einer Zeile. Ein Objekt, dessen einziges Array-Member die Daten sind – der {"data":[…]}-Umschlag, den die meisten APIs zurückgeben – nutzt dieses Array und weist auch darauf hin.
EingabegrößeBytes8 MBAlles läuft im Main-Thread, daher wird die Arbeitsmappe oberhalb dieser Grenze abgelehnt, statt den Versuch zu wagen. Nichts wird hochgeladen, unabhängig von der Größe.

Häufig gestellte Fragen

Ist das eine echte Excel-Datei oder nur eine CSV mit anderer Endung?

Eine echte Arbeitsmappe. Die Ausgabe ist eine OOXML-.xlsx-Datei: ein ZIP aus SpreadsheetML-Teilen, mit typisierten Zellen, einer fett gedruckten fixierten Kopfzeile, einem AutoFilter und gemessenen Spaltenbreiten. Das ist der entscheidende Unterschied – eine in .xls umbenannte CSV trägt keine Typen, sodass Excel jede Zelle raten muss und bei führenden Nullen, Artikelnummern und allem, was nach einem Datum aussieht, falsch rät.

Überleben meine führenden Nullen?

Ja, wenn der JSON sie als String enthielt. {"sku":"00123"} schreibt den Text 00123 und Excel zeigt 00123, weil die Zelle als Text deklariert ist. {"sku":123} schreibt die Zahl 123, und das ist das Dokument, das exakt ist – nicht das Tool, das etwas verliert. Das ist die mit Abstand häufigste Beschwerde über CSV-basierte Exporter und der Grund, warum dieses Tool stattdessen eine Arbeitsmappe schreibt.

Was passiert mit verschachtelten Objekten und Arrays?

Sie werden zu Spaltenpfaden: {"customer":{"name":"Ada"}} erzeugt eine Spalte namens customer.name, und tags wird zu tags[0], tags[1]. Die Klammer-Notation für Arrays ist absichtlich anders als die Punkt-Notation für Objekte, damit ein Spaltenname nie mehrdeutig sein kann, woraus er stammt. Stellen Sie Arrays auf den Modus Join um, um sie in einer Zelle zu bekommen – das ist verlustbehaftet und gilt nur für Arrays aus Skalaren.

Manche Datensätze haben Felder, die andere nicht haben. Fallen die weg?

Nein. Das Spaltenset ist die Vereinigung der Felder aller Datensätze, in der Reihenfolge ihres ersten Auftretens. Eine Notiz, die bei einer Bestellung von fünfzig auftaucht, bekommt also ihre eigene Spalte, überall sonst mit leeren Zellen. Exporter, die die Kopfzeile aus dem ersten Datensatz lesen, verlieren diese Felder, ohne es zu sagen.

Werden meine Daten irgendwo hochgeladen?

Nein. Die Arbeitsmappe wird in Ihrem Browser zusammengesetzt und geht direkt in den Download über. Öffnen Sie DevTools, gehen Sie zum Netzwerk-Panel, fügen Sie ein Dokument ein und klicken Sie auf Download – kein Request enthält die Daten. Das wiegt hier schwerer, als es scheint: Das JSON, das Leute in eine Tabellenkalkulation stecken, ist meist ein echter Export echter Datensätze.

Wie groß darf ein Dokument sein?

8 MB JSON, das sind Zehntausende von Datensätzen. Darüber lehnt das Tool ab, statt den Tab einzufrieren, denn die Arbeit passiert im Main-Thread. Die Arbeitsmappe selbst ist klein im Verhältnis zur Eingabe: Das Archiv enthält XML-Text und wird mit stored- statt deflated-Einträgen geschrieben, rechnen Sie also damit, dass die Datei etwas größer ist als das entsprechende CSV.

Was kann JSON zu Excel sonst noch?