JSON naar Excel Converter

Converteer JSON online naar Excel — gratis, direct en privé. Je bestand wordt in je browser verwerkt en nooit geüpload.

Resultaat

Geconverteerde bestanden en een voorvertoning verschijnen hier.

Gereed. Kies een tabelbestand om te converteren.

Hoe de conversie werkt

  • Een array van objecten wordt omgezet in rijen en kolommen; geneste objecten worden platgeslagen tot kolommen met een punt-notatie, zoals adres.stad.
  • Het werkblad wordt weggeschreven als een enkel tabblad met platte waarden — zonder formules, opmaak of extra tabbladen.

Je tabelbestand wordt in je browser geconverteerd. Er wordt niets naar BroBroGo geüpload.

Veelgestelde vragen

Hoe converteer ik JSON naar Excel?

Sleep je JSON-bestand hiernaartoe en klik op converteren — het Excel-bestand is binnen enkele seconden klaar om te downloaden, inclusief een voorbeeld van het resultaat. Alles wordt lokaal op je apparaat uitgevoerd.

Hoe groot mag het bestand zijn dat ik wil converteren?

Tot 8 MB, 10.000 rijen en 200 kolommen per bestand. Grotere datasets kunnen het beste eerst in kleinere bestanden worden opgesplitst.

Wat deze pagina doet

Deze pagina zet één JSON-bestand om naar een Excel-werkmap (XLSX). Je uploadt een bestand, de tool leest de JSON, vlakt de hiërarchische structuur af tot een platte tabel en toont een preview met het aantal rijen en kolommen. Daarna kun je het resulterende XLSX-bestand downloaden. De conversie werkt volledig in de browser – er wordt geen bestand naar een server gestuurd.

De tool verwacht een table-shaped JSON: een array van objecten (elk object wordt een rij, de keys worden kolomkoppen) of een array van arrays (elke sub-array wordt een rij). Alleen het eerste werkblad wordt gegenereerd; er komen geen meerdere sheets, formules of opmaak uit de JSON in de output terecht.

Waarom deze conversie anders is dan CSV naar Excel

Wie gewend is CSV of Excel te converteren, merkt dat deze JSON-naar-Excel-pagina een fundamenteel ander probleem oplost. CSV en Excel zijn van nature plat: elke rij heeft evenveel kolommen, en er is geen nesting. JSON daarentegen is getypeerd en nestbaar – een object kan andere objecten, arrays, getallen, booleans of null bevatten. Een spreadsheetcel kan geen object of array weergeven zonder die structuur eerst af te vlakken.

Deze tool past een vaste flatteningregel toe: geneste keys worden samengevoegd met een punt als scheidingsteken. Bijvoorbeeld: {"adres": {"stad": "Utrecht", "postcode": "3512 AB"}} wordt in de tabel: adres.stad = Utrecht, adres.postcode = 3512 AB.

Dat is niet nodig bij CSV- of Excel-conversie, want die formaten kennen geen hiërarchie. Bovendien schrijft de tool de data naar XLSX – een zip van XML-bestanden – waarin native datatypen zoals getallen en booleans bewaard blijven. CSV reduceert alles tot tekst, waardoor een veld "123" (string) niet te onderscheiden is van het getal 123. XLSX bewaart dat verschil.

De flatteningregel in detail

De tool doorloopt de JSON en bouwt een platte tabel. Hierbij gelden duidelijke regels:

  • Array van objecten – elk object wordt één rij. Alle unieke keys over alle objecten heen worden kolomkoppen. Ontbrekende keys in een object geven een lege cel.
  • Geneste objecten – een key als "adres": {"stad":...} wordt "adres.stad". Bij diepere nesting volgen meer punten: "adres.coordinaten.lat".
  • Arrays van arrays – elke sub-array wordt een rij, en er wordt geen headerrij gegenereerd.
  • Primitieve waarden – getallen, booleans en null worden direct in de cel geplaatst. Strings blijven strings.

Voorbeeld: van genest object naar tabel

Stel, je hebt deze JSON:

[
  {
    "id": 1,
    "naam": "Jan",
    "adres": {
      "stad": "Utrecht",
      "postcode": "3512 AB"
    }
  },
  {
    "id": 2,
    "naam": "Maria",
    "adres": {
      "stad": "Amsterdam"
    }
  }
]

De tabel krijgt vier kolommen: id, naam, adres.stad, adres.postcode. Twee rijen:

id naam adres.stad adres.postcode
1 Jan Utrecht 3512 AB
2 Maria Amsterdam (leeg)

Let op: bij Maria ontbreekt postcode, dus de cel blijft leeg. Dat is correct – JSON toestaan dat niet alle objecten dezelfde keys hebben, is een kenmerk van de taal.

Waarom arrays van objecten en arrays van arrays anders worden behandeld

Een array van objecten is de meest natuurlijke manier om tabelgegevens in JSON weer te geven. Maar soms krijg je een array van arrays, bijvoorbeeld rechtstreeks uit een API die matrixdata levert. De tool herkent dat patroon en maakt er rijen van zonder dat er kolomkoppen uit de data worden afgeleid. Als je een mengvorm hebt (een array met zowel objecten als arrays), dan worden niet-object elementen verzameld onder een value kolom, en een innerlijke array wordt daar als JSON-tekst opgeslagen.

Datatypen: JSON vs. XLSX

JSON kent zes waardetypen: string, number, boolean, null, object en array. In een platte tabel blijven alleen de leaf-waarden over – objecten en arrays worden immers afgevlakt. De toewijzing naar XLSX-cellen is direct:

JSON-type XLSX-celtype Opmerking
string tekst (inline) Geen speciale opmaak, alleen de waarde.
number getal (IEEE 754 double) Geheel of decimaal, exact zoals in JSON.
boolean boolean (true/false) In Excel weergegeven als WAAR/ONWAAR.
null lege cel XLSX kent geen null; lege cel is het dichtstbijzijnde.
object/array (n.v.t.) Wordt afgevlakt, komt niet als aparte waarde in een cel.

Een belangrijk verschil met CSV: een JSON-getal 12345678901234567890 (groot geheel getal) wordt in XLSX opgeslagen als getal, maar kan in Excel precisie verliezen (Excel gebruikt 15 significante cijfers). In CSV zou het als string blijven bestaan. Ook booleans: true in JSON wordt in XLSX een booleanwaarde, terwijl CSV er een string "true" van maakt.

Wat gebeurt er met null? De JSON-specificatie zegt dat null expliciet de afwezigheid van een waarde aangeeft. In de tool vertaalt zich dat naar een lege cel. Dat is logisch, want een lege cel in Excel wordt niet geïnterpreteerd als 0 of "" tenzij de gebruiker dat expliciet instelt. Wie onderscheid wil maken tussen null en een lege string moet dat vooraf in de JSON oplossen (bijvoorbeeld een string "null" gebruiken – maar dat voelt als een workaround).

Randgevallen en foutmeldingen

Hier zijn de foutmeldingen die verschijnen als de invoer niet voldoet:

Foutmelding Wat er mis is
“Choose a CSV, JSON or XLSX file.” Het geselecteerde bestand heeft een andere extensie (bijv..txt).
“This file is too large. Use a file under ‹max›.” De bestandsgrootte overschrijdt de ingestelde limiet (8 MB).
“This JSON is invalid or not table‑shaped.” De JSON-parser kan de data niet lezen (malformed), of de structuur is geen array van objecten/arrays (bijvoorbeeld een enkel object).
“This file has no table rows.” De JSON-array is leeg (``).
“This table has more than ‹max› rows.” Het aantal rijen in de afgevlakte tabel overschrijdt de limiet (10.000 rijen).
“This table has more than ‹max› columns.” Het aantal kolommen (unieke keys) overschrijdt de limiet (200 kolommen).
“Conversion cancelled.” De gebruiker heeft de conversie handmatig afgebroken.
“This conversion is taking too long. Try a smaller file.” De verwerkingstijd overschrijdt een interne timeout (ongeveer 12 seconden).

De limieten voor rijen en kolommen zijn geen willekeurige getallen – ze corresponderen met de maximale afmetingen van een Excel-werkblad. De tool voert die controles uit om te voorkomen dat er een onbruikbaar bestand wordt gegenereerd. Het “not table‑shaped” probleem is de meest gemaakte fout: gebruikers proberen bijvoorbeeld een enkel object ({"sleutel": "waarde"}) te converteren, maar dat is geen array. De tool kan geen rijen maken van één object zonder context. De oplossing is om het object in een array te zetten: [{"sleutel": "waarde"}].

Wie heeft deze pagina nodig

Deze tool is bedoeld voor iedereen die hiërarchische JSON-data om wil zetten naar een platte spreadsheet zonder zelf code te schrijven. Concrete situaties:

  • Data-analisten die een API-respons (bijvoorbeeld van een REST-service) willen analyseren in Excel of Power BI. De nested objecten moeten plat om draaitabellen en grafieken te kunnen maken.
  • Teamleden zonder programmeerervaring die JSON-bestanden krijgen toegestuurd van ontwikkelaars en die willen openen in Excel. Ze hebben geen behoefte aan de hiërarchie, ze willen gewoon de rijen en kolommen zien.
  • Projecten waar datatypen behouden moeten blijven. Als je een JSON met getallen en booleans naar CSV converteert, gaan de types verloren. Deze tool schrijft XLSX waarin elk veld het juiste type behoudt.
  • Prototyping en data cleaning: snel een grote JSON dump plat maken om te controleren of alle velden aanwezig zijn, of om te filteren op bepaalde condities.

Een veelgemaakte fout is dat gebruikers de tool willen gebruiken om Excel-formules of opmaak uit een JSON te halen. Dat kan niet – de output bevat alleen statische data, geen formules, geen celkleuren, geen randen. Wie opmaak en formules nodig heeft, moet de data na conversie in Excel zelf toevoegen.

Client-side verwerking en privacy

Omdat de conversie volledig in de browser plaatsvindt, blijft het JSON-bestand op de computer van de gebruiker. Er wordt niets naar een server geüpload. Dat is belangrijk voor gevoelige data – denk aan bedrijfsgegevens, persoonsinformatie of API-sleutels die per ongeluk in een JSON dump staan. De tool kan offline worden gebruikt nadat de pagina eenmaal geladen is (mits de JavaScript-bronnen beschikbaar blijven). Gebruikers die vaak met vertrouwelijke JSON werken, hebben hier baat bij.

De technische werking: de browser leest het bestand, parseert de JSON, voert de flattening uit en genereert een XLSX-bestand. Het zip-formaat van XLSX wordt client-side geconstrueerd, waarna het bestand wordt aangeboden als download. Dit is een performante oplossing voor bestanden tot enkele megabytes – bij zeer grote bestanden kan de tabellenbouw traag worden, vandaar de timeout-foutmelding.

Veelgestelde vragen

Waarom krijg ik de foutmelding “This JSON is invalid or not table‑shaped” bij een geldig JSON-bestand? Het bestand is mogelijk wel syntactisch correct, maar de structuur is geen array. Als je een enkel object hebt, plaats het dan in een array: [{"key": "value"}]. Een dieper genest object zonder array wordt niet herkend als tabelvormig.

Kan ik meerdere JSON-bestanden tegelijk converteren? Nee. De tool accepteert één bestand per keer.

Wat gebeurt er met een JSON-array van arrays van ongelijke lengte? Elke sub-array wordt een rij. Als sub-arrays verschillende lengtes hebben, worden de rijen opgevuld tot de lengte van de langste array. Ontbrekende cellen blijven leeg.

Behoudt de tool datum- of tijdstrings als Excel-datumwaarden? Nee. Datums in JSON zijn vrijwel altijd strings (bijv. "2025-03-18"). De tool slaat ze op als tekst. Als je ze in Excel wilt herkennen als datum, kun je na conversie een tekst-naar-kolommen of de functie DATUMWAARDE gebruiken.

Is er een limiet aan de nestediepte die de tool aankan? Er is geen harde limiet. De flattening werkt recursief.

Waarom is de output kleiner dan het JSON-bestand, terwijl XLSX een ZIP is? XLSX comprimeert de XML-data, terwijl JSON ongestructureerde tekst is. Bij veel herhaling in de JSON (bijvoorbeeld duizenden objecten met dezelfde structuur) kan XLSX veel kleiner zijn. Bovendien bevat JSON vaak witregels en spaties die in XLSX niet worden opgeslagen.