Home · Free tools · JSON to Excel
JSON to Excel
Paste an API response or drop a .json file and download a real .xlsx. The records array is found inside the response, nested fields become their own columns, and records with different fields line up instead of shifting. No Power Query, no add-in, and nothing is uploaded.
Or drop a .json file
Drop .json or .ndjson here to load it into the box below
JSON paste it here, or edit what the file loaded
Nothing is uploaded. The file is read by JavaScript in this tab and never leaves your computer — no server sees it, and closing the tab throws it away.
What the usual routes cost you
There are three common ways to get JSON into Excel, and each has a price.
- Power Query (Data → Get Data → From File → From JSON) is the thorough one, and it is desktop Excel only, several dialogs deep, and it asks you to expand each nested record by hand. For a one-off it costs more time than the data is worth.
- A converter that hands you a CSV moves the problem: Excel re-reads that CSV on open and reinterprets it — long reference numbers become scientific notation, and a date-shaped string becomes a date in whatever the machine's locale is. This page writes .xlsx directly, so the values arrive as they were.
- Paste into a sheet works only if the JSON is already flat, which real responses are not.
What happens to the nesting
{"customer": {"name": "Ada", "country": "GB"}} becomes two columns,
customer.name and customer.country. A list of tags joins into one cell. A list
of objects gets one set of columns per index, so a two-line order keeps
items.0.sku and items.1.sku apart. If a record is missing a field the cell is
left empty rather than the row closing up.
The sheet you get
One sheet, a header row of the union of every record's fields in first-seen order, one row per record. The preview on this page shows the first 200 rows; the download has all of them.
When the same response has to land in the same sheet every week
That is no longer a conversion — it is a job, and the interesting part is what happens when the endpoint changes a field name or returns nothing at all.
TableDI 2 is a desktop app for file work you redo every period: it keeps your sources, rules and delivery as a job, so next month you drop in the new files and run it again. Everything runs on your own machine.
Questions people ask
My JSON is an object, not an array. Will it still convert?
Yes. A real API response is usually {"data": [ … ]} or
{"results": [ … ]} — the records are one level down. The converter looks through the
top-level keys for the first array whose items are objects and uses that, and it prints which key it
read above the table so you can check it picked the right one. If there is no array at all, the object
is treated as a single record and you get one row.
Do I need Power Query or an Excel add-in?
No. The conversion runs in this page and the .xlsx is written by your browser. Any version of Excel that opens .xlsx will open it, including Excel for Mac, Excel on the web, LibreOffice and Numbers.
Why .xlsx rather than CSV?
Because Excel re-interprets a CSV on open: a long reference number can become
1.23457E+17 and a string like 2026-09-15 becomes a date formatted by the
machine's locale. Writing .xlsx puts the values in the file as values. The CSV download is there too
if a script is the next consumer.
Are my files uploaded anywhere?
No. The file is read by JavaScript running in this tab, using the browser's own
DecompressionStream to unzip .xlsx and a parser that runs on your machine. There is no
server call in the page — you can watch the network tab while you use it. Close the tab and the data is gone.
What if the JSON is one object per line?
That is NDJSON and it is handled: when the whole document does not parse, each line is parsed on its own, and the result says NDJSON above the table.
How many rows can it handle?
The limit is your browser tab's memory rather than a fixed number. Note that one Excel sheet holds 1,048,576 rows — past that, Excel is the constraint, not this page.
Related
Doing this every month?
TableDI 2 keeps it as a job — the files, the key columns, the tolerance and the fixes you made. Next month you drop in the new files and run it again.
macOS, Apple silicon and Intel; Windows is in progress. Free is not a trial — no account, no card.
Last reviewed 2026-09-15 by the TableDI team. Something wrong on this page? Tell us — it is one inbox, read by the people who build TableDI.