Modern Niche World MNW

JSON to Excel

Paste JSON or open a file and get an .xlsx workbook with one row per object and one column per key, numbers as numbers and text as text.

Drop a JSON file here, or

JSON or TXT · up to 25 MB · or paste it below

Paste JSON or open a file, up to 25 MB. It stays on this page: nothing is sent anywhere or saved.

Up to 31 characters, without : \ / ? * [ or ].

Paste JSON or choose a file, then press Make the Excel file.

Everything happens on this page, on your device: your data is never uploaded, sent or saved.

Turn JSON into an Excel workbook

APIs and app exports hand over data as JSON, while the people who need it often want a spreadsheet. This tool makes an .xlsx workbook from it: one row per object, one column per key, with numbers stored as numbers and text as text, ready to sort, filter and add up.

How to use it

  1. Paste JSON, or choose or drop a .json file of up to 25 MB.
  2. Name the sheet. If the JSON holds several lists of rows, choose one under Rows from.
  3. Press Make the Excel file, then look over the preview and the notes.
  4. Download the .xlsx file.

The shape it needs

An array of objects, an array of arrays (each one a row, with no header), or an object holding one of those, as in {"results": [ … ]}. The column names go in the first row, in the order each key is first seen. A key missing from some objects leaves their cells empty, and a key repeated in one object keeps its last value, as most programs that read JSON do.

How values are written

  • Nested objects become dotted columns, such as address.city.
  • Arrays are joined in one cell, such as red, blue; objects inside them stay JSON text.
  • Numbers stay numbers, except whole numbers longer than 15 digits, which Excel can’t hold exactly: they’re stored as text with every digit.
  • Strings are always text, even "42" or "=SUM(A1)", so nothing turns into a number, a date or a formula.
  • true and false become TRUE and FALSE; null leaves the cell empty.

Good to know

  • Invalid JSON is reported by line and column, with what was expected; Show the error in the text selects the spot.
  • One plain sheet: no bold, frozen or filtered header row. Excel’s limits apply: 1,048,576 rows, 16,384 columns and 32,767 characters in a cell.
  • Exact digits: numbers are read exactly as written in the text, not rounded by JavaScript first, so long IDs are never changed.
  • Nothing is uploaded: the JSON is read and the file made on your device.
  • Need CSV instead? JSON to CSV makes CSV text that any app reads; this page makes a workbook with every cell already typed. Excel to JSON goes back the other way.

Frequently asked questions

What shape does the JSON need to be?
An array of objects, such as [{"name": "Jordan Lee"}, {"name": "Sam Rivera"}], an array of arrays, or an object holding one of those, as many APIs send it: {"results": [ … ]}. When an object holds several such arrays, you choose the one that becomes the sheet.
How are nested objects and arrays handled?
Nested objects become columns named with dots, such as address.city. An array goes into one cell with its values joined by commas, such as red, blue, and any object inside an array is written there as JSON text, so nothing is lost.
Why is a long number from my JSON stored as text?
Excel holds numbers to 15 significant digits, so a whole number with more, such as an order ID, would have its last digits changed. Those numbers go in as text with every digit kept, and the tool says how many there were.
Is my JSON uploaded?
No. It’s read and the workbook is made in this page, on your device, and nothing is uploaded, sent or saved. Closing or reloading the page clears it.