Skip to main content
Free File Converter

JSON to XLSX converter

Turn an array of JSON objects into an Excel workbook, one row per object.

Processed in your browser. This file is converted on your device and is never uploaded.

Converter

Input

.json up to 25 MB. You can also drag a file here.

Options
At most 31 characters, and none of : \ / ? * [ ]
Writes the object keys as the first row.

No file selected.

About this tool

API responses and exported records usually arrive as JSON, but the person who needs to read them usually wants a spreadsheet. This tool turns an array of JSON objects into an Excel workbook with one row per object.

Columns come from the union of every object's keys in the order they first appear, so a field that only some records carry still gets a column of its own.

Supported formats and limits

Input
.json
Output
.xlsx (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
Output name
The original name with the new extension, for example data.json becomes data.xlsx.
File size limit
25 MB
Processing
In your browser. The file is not uploaded.

How to use it

  1. Choose a .json file, or switch to Paste text and paste the JSON directly.
  2. Name the worksheet and decide whether the first row should list the column names.
  3. Select Convert, then download the .xlsx workbook.

Limitations

  • The top level must be an array of objects. A single object is treated as one row; arrays of plain values are rejected with an explanation.
  • Nested objects and arrays are written into their cell as JSON text, because a spreadsheet cell cannot hold a structure.
  • Every cell is written as text, so numbers and dates arrive as text rather than numeric or date cells.
  • The workbook has one worksheet, and no formatting, widths, or formulas are applied.
  • Worksheet names cannot contain : \ / ? * [ ] and are limited to 31 characters, which is an Excel restriction.

Frequently asked questions

Is my file uploaded?
No. The conversion runs entirely in your browser. The file never leaves your device and no request carrying its contents is made.
What happens to nested objects?
They are written into a single cell as JSON text. Flattening them into columns such as address.city needs naming rules that break as soon as arrays are involved, so the structure is preserved verbatim instead.
Why do some rows have empty cells?
Every row gets every column found anywhere in the document. Where a record does not have that field, the cell is left empty.
Can I get numeric cells instead of text?
Not from this tool. Converting values by guessing their type is how spreadsheet imports damage data, so the conversion is left to you in the spreadsheet application, where you can check the result.