Utilia

JSON to Excel Converter

Convert a JSON array or nested JSON to an Excel .xlsx file with a header row, column widths, a frozen header and one sheet per array. Runs in your browser.

Options

How to convert JSON to Excel

  1. Paste your JSON in JSON data, or drop a .json file on the drop zone. Load an example shows the kind of data the tool expects.
  2. Look at the Preview: it shows the columns and the first 100 rows of each sheet as they will appear in Excel. If the JSON has an error, the message gives its line and column and shows the faulty line with a caret under the problem.
  3. Adjust the Options if needed, then click Download Excel file (.xlsx).

The file is built in your browser with the SheetJS library. Your JSON is never uploaded, so API responses, exports from internal tools or customer data stay on your device.

How the JSON is turned into rows and sheets

The typical input is an array of objects, such as [{"id": 1, "name": "Ana"}, …]: each object becomes a row and each key a column. Keys are collected from every object in the order they first appear, so records that miss a key simply get an empty cell.

  • Nested objects: with Flatten nested objects into columns (address.city), {"address": {"city": "Laval"}} gives an address.city column, at any depth. Untick it to put the object’s JSON text in a single address cell instead.
  • Lists inside a record: One cell, comma-separated (a, b) is the easiest to read; One column per item (tags.0, tags.1) is best when you want to filter on each item; One cell, as JSON text keeps the exact structure. Lists of objects are written as JSON text in the first case.
  • Several tables: with One sheet per top-level array, a JSON object such as {"customers": [...], "orders": [...]} gives a workbook with a customers sheet and an orders sheet. An envelope like {"data": [...]} is unwrapped. Sheet names are cleaned to meet Excel’s rules: at most 31 characters and none of \ / ? * [ ] :.
  • Arrays of arrays such as [["a", 1], ["b", 2]] are written as they are, without a header row.

Types, dates and Excel limits

Numbers stay numbers, true and false become Excel booleans, null gives an empty cell, and text stays text: a string starting with = is never turned into a formula. With Convert ISO dates (2026-09-30) to Excel dates, strings such as 2026-09-30 or 2026-09-30T14:05:00Z become real dates you can sort and filter; the time is kept as written and any time-zone offset is dropped. Integers of more than 15 digits, such as long IDs, are kept as text in recent browsers, because Excel only stores 15 significant digits and would round them.

The workbook has a header row, column widths fitted to the content, and optionally Freeze the header row and Add filter buttons to the header row. Excel accepts at most 1,048,576 rows and 16,384 columns per sheet, and 32,767 characters per cell: the tool tells you if your data goes beyond these limits, and longer cells are cut.

Frequently asked questions

Why do I get "Error at line 3, column 1"?

The JSON is invalid at that spot. Common causes are a trailing comma after the last item, single quotes instead of double quotes, or comments. The line is shown with a caret under the problem.

Can I convert deeply nested JSON?

Yes. Flattening works at any depth and produces dotted column names. Very wide results can hit Excel’s 16,384-column limit: choose one cell per list or untick flattening.

How do I get one sheet per section of my JSON?

Put each table in a top-level key whose value is an array and keep One sheet per top-level array ticked.

Will my dates be recognised by Excel?

ISO 8601 strings are converted when the date option is ticked. Other formats, such as 09/30/2026, stay text.

Is there a size limit?

Files up to 50 MB can be dropped. The real limit is your device’s memory, and the preview shows only the first 100 rows of each sheet.