How to Convert JSON to Excel
Paste JSON, choose flattening and review the sheet preview. Download creates an XLSX workbook locally. Use JSON to CSV if a plain text interchange file is more useful than a workbook.
How JSON Becomes Spreadsheet Rows
Records become rows and property names become headers. The converter gathers keys across records so sparse fields can still have columns. A primitive list can be represented as a single value column.
Flattening Nested JSON for XLSX
Flattening makes nested object paths available as columns. Nested arrays are serialized within cells rather than creating relational sheets. Check very wide data and path names before handing the workbook to another person.
Data Types, Headers and Large Files
Numbers and booleans can become typed cells; date strings stay strings unless explicitly converted. Excel numeric precision and browser memory both impose practical limits. Preview is limited, so check the downloaded row count for larger inputs.
JSON to Excel vs JSON to CSV
XLSX preserves worksheet structure and cell types. CSV is simpler, smaller to inspect as text and broadly supported, but has no worksheet model. Choose the format your receiving software actually expects.
More examples and technical details
What an xlsx File Actually Is
An .xlsx file is not a text format. It is a ZIP archive containing a folder structure of XML documents defined by the Office Open XML standard. Rename one to .zip and unpack it and you will find a workbook definition, one XML file per worksheet, a shared strings table, a styles part, and a relationships file that ties them together.
This matters because it explains the whole difference between this converter and a CSV export. CSV is a stream of characters with no idea what a type, a sheet, or a column width is. xlsx has a place to record all of it. When you write a number to an xlsx cell, the file says that cell is numeric and Excel does not have to guess.
Side by Side Example
A staff roster and the worksheet grid it produces. Types shown in brackets are what gets written into the sheet XML.
JSON input
Worksheet
Column A keeps its leading zeros because the cell is explicitly written as text. Save the same data as CSV and open it by double clicking, and column A becomes 417 and 892.
What xlsx Preserves That CSV Loses
| Capability | CSV | xlsx |
|---|---|---|
| Cell data types | None, everything is text | Number, text, boolean, date, error, formula |
| Multiple sheets | One file per table | Many sheets in one workbook |
| Number formatting | None | Currency, percentage, decimal places, custom masks |
| Column widths | None | Stored per column, can be auto sized |
| Header styling | None | Bold, fill, borders, freeze panes |
| Formulas | Stored as literal text | Live and recalculated |
| Encoding | Ambiguous without a byte order mark | Always UTF-8 internally |
| File size | Smaller for plain data | Larger, but compressed |
Nested JSON is still flattened into columns using dot notation, exactly as it would be for CSV, because a worksheet is just as rectangular as a CSV file. The advantage is entirely in what each cell can carry, not in the shape of the grid. Arrays inside a record are either joined into a single cell or expanded into indexed columns, with the same trade off as any flattening.
Excel Hazards in Detail
Leading zeros disappear
Any value Excel decides is numeric loses its padding, so employee code 00417, UK postcode style references, and account numbers all shrink. Writing a real xlsx with the column typed as text avoids this entirely. Going through CSV does not, because there is nowhere in the file to record the intent.
Fifteen significant digits and no more
Excel stores numbers as IEEE 754 doubles and displays a maximum of fifteen significant digits. A sixteen digit card number or a long database identifier is rounded, and the digits beyond the fifteenth become zeros. This is a silent, irreversible data loss. Long identifiers must be written as text.
What happens to a long number
Strings that turn into dates
Excel's date recognition is aggressive and locale dependent. Values like 1-2, 3/4, MAR-1, and 2025-3 are all read as dates. The gene naming case is the best documented example: SEPT1 and MARCH1 became dates so reliably that the research community renamed the genes rather than keep fighting the spreadsheet.
The row limit
A worksheet holds at most 1,048,576 rows and 16,384 columns. That is 2 to the power 20 rows, a limit set in 2007 and unchanged since. Exceeding it does not warn you gracefully in every path, so a large export can be truncated. If your data approaches a million rows, a spreadsheet is the wrong container and a database or a Parquet file is the right one.
Forcing Values to Stay Text
- Best option: generate a real xlsx with the column written as a text type. The intent lives in the file and survives every open, edit, and save.
- If you must use CSV, import through Data then From Text/CSV and set the affected columns to Text in the preview before loading. Never double click the file.
- Format the destination column as Text before pasting, not afterwards. Reformatting after the fact does not bring back digits that were already discarded.
- The apostrophe trick: a leading single quote in a cell marks the content as text. It works, but the apostrophe is part of the cell in some export paths, so use it for quick manual fixes rather than pipelines.
When CSV Is Still the Better Choice
xlsx is not automatically the right answer. Choose CSV when the consumer is a program rather than a person, when a database bulk loader is reading the file, when the data is genuinely enormous and streaming matters, or when the file needs to be diffed in version control. CSV is plain text, so a git diff on it is readable and a change is reviewable. A diff on a ZIP of XML is not.
Choose xlsx when a human will open the file, when types and leading zeros must survive, when you need more than one table in one deliverable, or when the recipient will complain about the columns being wrong. Which, in practice, is most of the time.
Spreadsheets are often one output of several. Browse the full converter collection for JSON to CSV when a program is reading the file, CSV to JSON to bring a colleague's spreadsheet back into your pipeline, and JSON to SQL when the data belongs in a table rather than a workbook.
Standards and references
Frequently asked questions
How do I convert JSON to Excel?
Paste JSON, review the tabular preview and use Download XLSX.
Does the tool create a real .xlsx file?
Yes. The file is an Open XML workbook packaged as ZIP, not CSV renamed to .xlsx.
How are nested objects flattened?
Nested property paths become column names when flattening is enabled.
Are numbers and dates preserved?
Numbers and booleans are typed. Date strings remain strings; precision-sensitive numbers need review in Excel.
Is the file generated locally?
Yes. The XLSX archive is built in your browser.