JSON to Excel
Convert JSON objects and arrays to XLSX
Convert JSON to XLSX. Numbers must round-trip within 15 significant digits; quote exact long numbers as strings. Arrays and empty objects remain JSON text. Limits: 10 MiB, 50,000 rows, 200 columns, 2,000,000 cells; 32,767 UTF-16 code units per cell.
Processed in your browser without saved drafts. Analytics excludes input, filenames, sheet names, column names and raw errors.
About this tool
Convert JSON objects, arrays of objects, or arrays of primitive/array values into XLSX in your browser. Object rows cannot be mixed with primitive rows. Flattening escapes literal dots and backslashes in keys, while arrays and empty object fields remain JSON text. Duplicate JSON keys and numeric tokens outside a finite, safe, 15-significant-digit round-trip profile are rejected; quote exact long identifiers. Numbers and booleans retain cell types, formula-like strings remain text, and null or absent fields become empty cells. Limits: 10 MiB, 50,000 rows, 200 columns, 2,000,000 cells including headers and 32,767 UTF-16 code units per cell. Preview: 30 rows by 20 columns.
Scenario Recipes
Export API records while retaining identifiers and nested fields
Goal: Create one worksheet row per record with explicit field and number rules.
- Paste an object, an array of objects, or an array of primitive/array values. Do not mix objects with primitive rows. Quote exact long numbers and identifiers before exporting; duplicate keys and numbers outside the 15-significant-digit round-trip profile are rejected.
- Choose nested-object flattening or keep nested objects as JSON text. Flattened paths escape literal dots and backslashes within keys; arrays and empty object fields remain JSON text in one cell.
- Prepare the preview and compare all columns and values. Missing fields and null become empty XLSX cells; empty strings remain text. Set the output names, prepare again, and download the complete XLSX.
Result: An XLSX with typed accepted numbers and booleans, text identifiers and stable record boundaries. Formula-like strings are text cells, not calculated formulas.
Failure Clinic (Common Pitfalls)
A long number has already been rounded before it reaches the tool
Cause: JSON numeric tokens and spreadsheet numeric cells have finite precision. Formatting the rounded value cannot recover lost digits.
Fix: Start from the exact original string. Numeric tokens must be finite, safe when integral, and round-trip within 15 significant digits. Negative zero should also be quoted if its sign matters.
Reconstructing nested objects by splitting every dot
Cause: Dots and backslashes can be literal key characters. Flattening uses backslash escapes to distinguish them.
Fix: Use the displayed escaped paths, or disable flattening and retain nested JSON text. This converter does not provide a reverse flatten operation.
An export fails despite having fewer than 50,000 rows
Cause: Limits also apply to bytes, columns, total cells, nesting and individual strings.
Fix: Keep input within 10 MiB, 200 columns, 2,000,000 cells including headers, 64 nesting levels and 32,767 UTF-16 code units per cell. Remove unsupported control characters and unpaired surrogates. Split larger inputs before conversion.
Production Snippets
A literal dotted key is different from a nested path
json
[{"a.b":1,"a":{"b":2},"id":"9007199254740993","__proto__":"own"}]
Flattened column names: a\.b | a.b | id | __proto__
Values: 1 | 2 | 9007199254740993 (text) | ownFrequently Asked Questions
A long number has already been rounded before it reaches the tool?
JSON numeric tokens and spreadsheet numeric cells have finite precision. Formatting the rounded value cannot recover lost digits. Start from the exact original string. Numeric tokens must be finite, safe when integral, and round-trip within 15 significant digits. Negative zero should also be quoted if its sign matters.
Reconstructing nested objects by splitting every dot?
Dots and backslashes can be literal key characters. Flattening uses backslash escapes to distinguish them. Use the displayed escaped paths, or disable flattening and retain nested JSON text. This converter does not provide a reverse flatten operation.
An export fails despite having fewer than 50,000 rows?
Limits also apply to bytes, columns, total cells, nesting and individual strings. Keep input within 10 MiB, 200 columns, 2,000,000 cells including headers, 64 nesting levels and 32,767 UTF-16 code units per cell. Remove unsupported control characters and unpaired surrogates. Split larger inputs before conversion.
How do I use this converter?
Paste an object, an array of objects, or an array of primitive/array values. Do not mix objects with primitive rows. Quote exact long numbers and identifiers before exporting; duplicate keys and numbers outside the 15-significant-digit round-trip profile are rejected. Choose nested-object flattening or keep nested objects as JSON text. Flattened paths escape literal dots and backslashes within keys; arrays and empty object fields remain JSON text in one cell. Prepare the preview and compare all columns and values. Missing fields and null become empty XLSX cells; empty strings remain text. Set the output names, prepare again, and download the complete XLSX.
Is my input uploaded or saved as a draft?
Processing runs in this browser. Input is not uploaded or saved as a draft; analytics excludes values and filenames.
Keep browsing