JSON to Excel

Go straight from a JSON array to a real .xlsx file, not a CSV you have to coax Excel into parsing. Columns are typed (numbers stay numbers, ISO dates become proper date cells), nested arrays can land on their own sheets, and you get a workbook that opens cleanly in Excel, Numbers and LibreOffice.

How to convert JSON to Excel

  1. 1

    Paste JSON

    An array of objects (one sheet) or an object with multiple array properties (one sheet per array).

  2. 2

    Map to sheets

    Decide which arrays become sheets, which nested objects get flattened inline.

  3. 3

    Pick column types

    Auto-detect (numbers, booleans, dates) or force every column to text.

  4. 4

    Download XLSX

    A real Excel file with typed cells, not a CSV with a different extension.

Why XLSX beats CSV for this job

Problem CSV behaviour XLSX behaviour
Leading zeros in IDs Silently converted to number Preserved as text when typed as string
Large integers Lose precision above 2^53 Stored as text, full precision
ISO dates Shown as string unless column formatted Real date cells, sortable
UTF-8 characters without BOM Garbled on Windows Encoded properly by default
Multi-table data One CSV per array, manual joining One workbook, separate sheets
Formulas, colours, charts Not supported Fully supported

Type detection

The converter inspects values to pick Excel types:

Value in JSON Excel cell type
42 / 3.14 Number
true / false Boolean
"2026-04-18" (ISO date) Date
"2026-04-18T10:22Z" Datetime
"007" (leading zero) Text (explicit)
null Empty cell
Long numeric string Text (to preserve precision)

Nested arrays -> multiple sheets

If your JSON looks like:

{ "users": [...], "orders": [...], "products": [...] }

The converter can produce one sheet per top-level array, with the sheet name matching the key. Deeply nested arrays become separate sheets with a foreign-key column (e.g. parent_id) linking back.

Excel limits to know

  • 1,048,576 rows per sheet, larger datasets must be split.
  • 16,384 columns per sheet.
  • 32,767 characters per cell.
  • 31-character limit on sheet names; longer names are truncated.

Common mistakes

  • Auto-converting “numeric” codes. Product codes like "0100A" are fine, but "0100" becomes the number 100 in auto-detect. Force the column to text.
  • Losing fractional seconds. Excel date cells only carry 1-ms precision; sub-millisecond timestamps are truncated.
  • Expecting formulas from JSON. The converter treats strings starting with = as strings by default (safe). If you want them to evaluate as formulas, enable “treat = strings as formulas”.
  • Opening a 500 MB XLSX in Excel. Excel loads the whole workbook into memory; for large data, use CSV and pandas instead.

Frequently Asked Questions

A real XLSX file, typed cells, proper date formatting, multi-sheet support. Not a CSV with an .xlsx extension.

Yes. If your JSON has multiple top-level arrays, each becomes its own sheet. For deeply nested arrays, the tool can produce relational sheets with a parent-key column.

Strings matching ISO-8601 (2026-04-18, 2026-04-18T10:22:00Z) are recognized and written as real Excel date cells. Other date formats can be detected with a custom format string.

Excel’s own limit is 1,048,576 rows per sheet. Beyond that, the converter splits the data across multiple sheets automatically, or you can export to CSV for unbounded datasets.

Related Tools

Tool available in other languages