JSON to Excel
Turn JSON into an Excel .xlsx in your browser — arrays of objects or arrays, NDJSON, or one object; nested keys flattened to columns, numbers typed.
A one-sheet .xlsx with a column per key (dotted for nested objects), numbers and booleans typed, leading-zero strings kept as text, a preview of the first rows, and a tab-separated copy of the table.
Example: [{"name":"Ada","age":36,"address":{"city":"London","zip":"00123"}}, …] becomes columns name, age, address.city, address.zip; 36 is a number, "00123" stays text; people.xlsx has a bold header.
Records become rows,
keys become columns.
How the JSON is read, how nested data is flattened, and how cells are typed.
Shapes
An array of objects becomes a table: the union of all keys in the order first seen forms the header row, and each object fills its row, leaving missing keys empty. An array of arrays becomes rows exactly as given. A single object becomes a two-column key/value sheet, and an object wrapping one array of records ({"items": [...]}) is unwrapped to that array. If the text is not one JSON value but one object per line (NDJSON, as log tools export), each line is parsed on its own.
Nesting
Nested objects are flattened to dotted keys — address.city, address.zip — so each leaf gets a column; turn flattening off to keep the nested object as JSON text in one cell. Arrays of scalars are joined with commas; arrays of objects stay as JSON text, because a second table cannot fit in the same rows. Only one worksheet is written.
Typing and the file
JSON numbers become numeric cells, booleans become TRUE/FALSE text, null becomes an empty cell. Strings that look like plain decimals become numbers too, except those with leading zeros (007, 00123), which stay text so the zeros survive. The workbook is the same SpreadsheetML the CSV to XLSX tool writes — inline strings, one sheet, a stored zip — built entirely in the browser; Excel and Sheets open it directly. Nothing leaves the browser; the same four anonymous usage counts as the rest of the site apply.
SOURCES
- ECMA-376 SpreadsheetML (inline strings, one worksheet, stored zip) — the same writer as CSV to XLSX; nested objects flattened to dotted keys, scalar arrays joined with ", ", other arrays kept as JSON
Last reviewed 22 September 2026. How results are checked: How we verify.