Lintify Logo
Lintify
Converters

JSON to Excel Converter

Convert a JSON array of objects into a downloadable .xlsx file with proper headers, types, and Unicode support. Open directly in Excel or Google Sheets.

JSON array
1

Export JSON directly to a real .xlsx file

CSV is the lowest common denominator for tabular data, but it has real downsides. It loses type information — every value becomes text, so numbers and dates cannot be sorted or filtered correctly in Excel without manual reformatting. It has encoding quirks, especially with non-Latin scripts. And it cannot represent multiple sheets or formulas. The JSON to Excel converter produces a real .xlsx file (the Office Open XML format) that opens cleanly in Excel, Google Sheets, Numbers, and LibreOffice Calc.

The converter uses SheetJS (thexlsx npm package), the de facto standard for spreadsheet generation in JavaScript. Numbers are written as numeric cells, booleans as boolean cells, and ISO 8601 date strings are recognized and written as date cells. Strings remain text. This is the main advantage over CSV — formulas and formatting work correctly because the types are right.

How nested objects are handled

By default, nested objects are flattened using dot notation — an object like{"address": {"city": "Mumbai"}} becomes a column called address.city. Arrays inside a cell are serialized as a JSON string. You can disable flattening from the toolbar if you want only top-level fields as columns.

Working with Google Sheets

The .xlsx format is the Office Open XML standard and is supported by every modern spreadsheet tool. To open the file in Google Sheets, upload it to Google Drive and either preview it or open it with Google Sheets directly. To import it into an existing sheet, use File → Import → Uploadand choose "Replace spreadsheet" or "Append rows".

Row limits and performance

Modern Excel supports just over a million rows per sheet, which is well beyond what a typical JSON payload contains. The practical limit is browser memory — files with hundreds of thousands of rows can take a few seconds to generate and download. Lintify shows a preview of the first 100 rows in the result panel so you can verify the conversion before downloading. The downloaded file contains every row, not just the preview.

Frequently asked questions

Common questions about the JSON → Excel tool.

What is the difference between this and JSON to CSV?
CSV is plain text with a comma delimiter — it works everywhere but loses type information (numbers, dates, and strings all become text). Excel (.xlsx) is a real spreadsheet format that preserves types, supports multiple sheets, and opens cleanly in Excel without the encoding quirks CSV sometimes has.
How are nested objects handled?
By default, nested objects are flattened using dot notation (address.city becomes a column header called address.city). Arrays inside a cell are serialized as a JSON string. You can disable flattening if you want only top-level fields as columns.
Are numbers and dates preserved as types?
Yes. Numbers are written as numeric cells, booleans as boolean cells, and ISO 8601 date strings are recognized and written as date cells. Strings remain text. This is the main advantage over CSV — formulas and formatting work correctly because the types are right.
Is there a row limit?
Modern Excel supports just over a million rows per sheet, which is well beyond what a typical JSON payload contains. The practical limit is browser memory — files with hundreds of thousands of rows can take a few seconds to generate and download. Lintify shows a progress indicator for large exports.
Does the file work in Google Sheets?
Yes. The .xlsx format is the Office Open XML standard and is supported by Google Sheets, LibreOffice Calc, Apple Numbers, and every modern spreadsheet tool. Just upload the downloaded file or import it via File > Import.

Related tools