JSON ↔ Excel
Turn a JSON array of objects into an Excel (.xlsx) file, or read a spreadsheet back to JSON, locally.
Turn JSON records into a downloadable spreadsheet
This tool builds a real .xlsx workbook from a JSON array of objects, and reads an existing spreadsheet back into JSON. It's aimed at handing structured data to someone who works in Excel, or pulling rows out of a spreadsheet someone sent you without opening Excel yourself. The file is generated and parsed entirely in your browser, so a spreadsheet full of customer records or pricing data never touches a server.
How to use the JSON ↔ Excel
- Paste a JSON array of objects into the editor, or load the example data.
- Set a file name, then click Download .xlsx to generate the spreadsheet.
- Click Open spreadsheet… to import an existing .xlsx or .xls file instead.
- Check the row count shown above the editor to confirm every record loaded.
Column types are inferred per field: a column where every value is a number is written as numeric, an all-boolean column as boolean, and anything mixed or textual falls back to text. Nested objects and arrays inside a row are converted to a JSON string rather than split into extra columns.
Frequently asked questions
- What spreadsheet formats does this support?
- It writes .xlsx files when you click download, and reads both .xlsx and .xls files back into JSON when you use Open spreadsheet; older formats like .ods aren't supported.
- How are the spreadsheet's column types decided?
- Each column is scanned across every row: if every value is a number it becomes a numeric column, if every value is a boolean it becomes a boolean column, and anything mixed defaults to plain text.
- Does the file get uploaded anywhere to convert it?
- No. Both generating the .xlsx file and reading an uploaded spreadsheet happen in your browser; the file never leaves your device, which matters for spreadsheets containing real business data.
- What happens to null or missing fields in a row?
- A missing or null field is written as an empty cell in the spreadsheet, and reading a blank cell back produces null in the resulting JSON object for that key.