How to convert JSON to Excel
- Paste your JSON into the editor above, or click Upload JSON to load a
.jsonfile. - Check the preview. The tool shows the first 50 rows so you can verify column headers and that nested fields flattened correctly.
- Click Download .xlsx. A real Excel workbook saves to your downloads folder, ready to open in Excel, Numbers, Sheets or LibreOffice.
How nested JSON gets flattened
JSON is hierarchical; a spreadsheet is flat. The converter walks every key in your object and produces a single column per leaf field, joining the path with dots. Given:
[
{ "id": 1, "user": { "name": "Ada", "city": "London" }, "tags": ["admin", "vip"] },
{ "id": 2, "user": { "name": "Linus", "city": "Helsinki" }, "tags": ["user"] }
]
You get a workbook with these columns:
| id | user.name | user.city | tags |
|---|---|---|---|
| 1 | Ada | London | [“admin”,“vip”] |
| 2 | Linus | Helsinki | [“user”] |
Arrays of primitives stay in one cell as a JSON string. Arrays of objects are also stringified — if you need them split into rows, pre-flatten with a tool like jq first.
When to use JSON to Excel (and when not to)
JSON is the lingua franca of APIs, but it’s painful to read. Excel is the lingua franca of business reporting. Convert when:
- You’re sharing API data with non-developers — sales, finance, support teams. They want a sheet, not a payload.
- You need to filter, sort or pivot the data — Excel and Sheets are still unbeaten for ad-hoc analysis.
- You’re archiving — .xlsx is a long-lived, well-supported format.
- You need to compare two snapshots — diff in Excel is faster than diff in JSON for non-engineers.
Skip the conversion when:
- The data is highly nested with arrays-of-arrays — Excel can’t represent it cleanly. Use JSON to CSV with custom flattening, or keep it as JSON.
- You need to round-trip — going JSON → Excel → JSON loses type information (numbers stored as text, dates reformatted).
What about JSON to CSV instead?
CSV is lighter, opens anywhere, and is better for further machine processing. Excel (.xlsx) is better for visual inspection and reporting. Use the JSON-to-CSV converter if you don’t need Excel-specific features.
Privacy
The whole conversion happens in your browser using the open-source SheetJS library. Your JSON never reaches a server — open DevTools → Network tab and you’ll see no upload request. This matters when your JSON contains tokens, internal IDs, or PII.
Related tools
Convert any CSV file to a real .xlsx Excel workbook in seconds. Free, no signup, files never leave your browser.
Turn any .xlsx or .xls Excel file into a clean CSV. Pick the sheet, pick the delimiter, download. No upload.
Convert any Excel workbook (.xlsx or .xls) to a printable PDF in seconds. Pick the sheet, pick orientation, download. 100% private.
Convert any CSV file to a clean PDF table in seconds. Free, no signup, files never leave your browser.
Frequently asked questions
- Does it produce a real .xlsx Excel file?
Yes. The download is a true Microsoft Excel workbook (.xlsx) generated using the SheetJS library.
- How are nested JSON objects handled?
Nested objects are flattened with dot notation. {user: {name: 'Ada'}} becomes a column named user.name.
- What about deeply nested arrays of objects?
Arrays of objects are stringified into one cell as JSON. If you need each array item as its own row, pre-process the JSON to flatten it.
- What's the maximum JSON size?
Up to ~20 MB of JSON works smoothly.
- Is the JSON uploaded anywhere?
No. Conversion runs entirely in your browser using SheetJS.
- Can I include multiple sheets in the output?
Currently the output is a single sheet (Sheet1).
- Why does Excel show numbers as text?
If your JSON has numeric values stored as strings (e.g. "123" instead of 123), Excel imports them as text. Cast them to numbers in your JSON before converting.