Data tool / 100% free

JSON to Excel Converter

Paste JSON or drop a file and get a real Excel workbook: the rows are found even inside an API response, nested fields get their own columns, and numbers, dates and true/false stay typed. Text is never run as a formula.

JSON to Excel

Add your files. Recommended settings are ready, so you can process in one click.

Drop files here

PDF, Word, images, audio, video, archives and more

Up to 100 files · 250 MB · No account
  1. 1Add files
  2. 2Choose an action
  3. 3Download or keep going
Private by default. Selected files upload only for server actions.Privacy details
How it works

What happens to your file.

The JSON is parsed in your browser and every list of records in it is found, including lists nested under data, results or items next to paging information. The keys across all the records become the header row, so a field that only appears in later records still gets a column. Nested objects become dotted columns such as customer.name, or stay together as JSON text if you prefer. Numbers are written as numbers, true and false as booleans, and unambiguous ISO dates as real Excel dates. Text is always stored as text, so a postcode keeps its leading zero and a value starting with = is never run as a formula. The workbook is a native XLSX file with a frozen, filterable header. Process file does the same on our server, and also reads files saved by PowerShell (UTF-16) or with a byte-order mark, records keyed by id as a Firebase export stores them, and rows written as arrays with a header row. Each list of records in an export of several collections becomes its own sheet.

Where it stops: A spreadsheet is flat, so a list of objects inside a record is kept as JSON text in one cell rather than spread over extra rows. Excel holds at most 1,048,576 rows and 16,384 columns per sheet and 32,767 characters per cell; anything beyond that is cut and the page says so. Numbers longer than 15 digits, such as IDs, are kept as text so no digit is lost.

How JSON becomes rows and columns

In the JSONIn the spreadsheet
A list of objectsOne row per object and one column per key
A nested object, such as "customer": {"name": "Ana"}A column called customer.name, or the object as JSON text
A list of values, such as ["red", "blue"]One cell reading red, blue, or the list as JSON text
A list of objects inside a recordOne cell of JSON text, since it cannot fit in one row
"2024-05-01" or "2024-05-01T09:30:00Z"A real Excel date that sorts and filters as a date
A number longer than 15 digitsText, so every digit is kept
"00123" or "=SUM(A1)"Text, exactly as written

Why a missing key does not shift the columns

The header is built from the keys of every record, not just the first one. A record without a key simply gets an empty cell in that column, so every value stays under the right heading even when the records differ.

When you need this

What people use it for.

Handing an API response to a colleague who works in Excel rather than in code
Turning an exported JSON log or report into something that can be filtered and charted
Getting newline-delimited JSON from a data export into a spreadsheet
Checking what is actually inside a large JSON file, row by row
What this tool includes

Everything you need, without a paywall.

Finds the rows inside an API response, and turns several lists into several sheets
Nested objects become their own columns, or stay together as JSON text
Numbers, true/false and ISO dates are written with real Excel types
Long IDs and leading zeros are kept exactly; text is never run as a formula
Reads JSON and newline-delimited JSON, and points to the line of any error
Reads files saved by PowerShell (UTF-16) or with a byte-order mark
Records keyed by id, as Firebase exports them, become rows
Rows written as arrays, with a header row, become columns
A table preview showing the type of every column before you download
Frozen header row with filter buttons
Converts up to 20 files at once in the visual editor
Questions

Common questions.

How do I convert JSON to Excel?

Paste the JSON or drop a .json file. The rows are found and previewed as a table; check the preview, adjust the settings if you need to, and download the Excel file. Nothing is uploaded.

What happens to nested objects?

By default each nested field gets its own column with a dotted name, such as customer.address.city. You can instead keep each nested object together as JSON text in one cell.

My JSON is an API response with the data inside. Will that work?

Yes. Every list of records in the document is found, wherever it sits. In the visual editor, tick the ones you want and each becomes its own sheet; Process file gives every list of records its own sheet.

Can it read a JSON Lines file or a PowerShell export?

Yes. A file with one JSON record per line, as BigQuery, MongoDB and log tools export, becomes one row per line, and a file PowerShell saved with Out-File (UTF-16) or with a byte-order mark is read as it was written.

Why are some numbers stored as text?

Excel keeps only 15 significant digits in a number, so a longer ID would be silently rounded. Those are kept as text so every digit survives. Values that are text in the JSON, such as "00123", also stay text.

Is this a real Excel file or a renamed CSV?

A real XLSX workbook, with typed cells, a frozen header and filter buttons, which spreadsheet apps open directly without an import step.

Is my data uploaded?

Not with the visual editor, which reads the JSON and builds the workbook in your browser. Process file sends it to our server, where it is written to a temporary folder for that request and deleted as soon as the job finishes.

Related free tools

You might also need.