JSON to Excel Converter.

Convert a JSON array of objects into a real .xlsx workbook in one click — with numbers as numbers, multi-sheet export, nested-object flattening, and a live preview. All in your browser.

No signup · No uploads · No file-size cap

Preview

// Paste JSON and the spreadsheet preview appears here.

Convert JSON to Excel online — free and private

A JSON to Excel converter turns structured JSON — most often a JSON array of objects — into a spreadsheet you can open, sort, and chart in Excel, Google Sheets, or LibreOffice. Paste your JSON above, press Download .xlsx, and the tool flattens each record into a row and writes a genuine XLSX workbook. Because everything runs client-side, you can convert JSON to Excel online without uploading a single byte.

How to convert JSON to Excel in three steps

  1. Paste your JSON into the input, or click “Load sample” to see the format.
  2. Choose your options — how nested arrays expand, whether to flatten nested objects, and a header row.
  3. Download — preview the sheet, then save it as data.xlsx (or data.csv).

A real spreadsheet, with the right cell types

Many “JSON to Excel” tools secretly hand you a CSV renamed to .xls, which Excel flags with a warning and which stores every value as text. This tool writes a proper .xlsx file where numbers are numeric cells and booleans are real values — so totals, sorting, and formulas just work. Need plain text instead? A one-click CSV download is right there too.

Multi-sheet export and nested data

When your JSON is an object whose values are arrays — say { "users": [...], "orders": [...] } — each key becomes its own worksheet, so a single workbook can hold several related tables. Nested objects flatten into readable parent.child columns, and nested arrays follow the mode you pick: expand to rows, join into one cell, or keep as JSON. That is the control single-shape converters leave out.

Convert JSON to Excel in Python or JavaScript

If you need the export inside a script, these are the standard routes — both of which need real libraries, because .xlsx is a zipped XML format you cannot write by hand.

Python (pandas + openpyxl) — the shortest path:

import pandas as pd

df = pd.json_normalize(records)          # flattens nested keys
df.to_excel("data.xlsx", index=False, engine="openpyxl")

For several sheets in one workbook, use an ExcelWriter:

with pd.ExcelWriter("data.xlsx") as writer:
    for sheet, rows in data.items():          # {"users": [...], "orders": [...]}
        pd.json_normalize(rows).to_excel(writer, sheet_name=sheet, index=False)

JavaScript / Node.js (SheetJS) — the same library this page uses:

import * as XLSX from "xlsx";

const sheet = XLSX.utils.json_to_sheet(records);
const book = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(book, sheet, "Data");
XLSX.writeFile(book, "data.xlsx");

Neither approach flattens nested arrays for you, picks columns, or names your sheets — that is the work the tool above does.

Common JSON to Excel problems (and fixes)

“Excel says the file format doesn't match the extension.” You were given a CSV renamed to .xls. Several popular “JSON to Excel” sites do this. The download here is a genuine .xlsx, so the warning never appears.

“My product code 007 became 7.” Excel re-guesses types when it parses text. A real .xlsx stores the cell type in the file, so the guessing never happens — which is precisely why the workbook export beats CSV for IDs, ZIP codes, and version strings.

“My dates are showing as 45678.” That is an Excel date serial number displayed with the wrong cell format — the value is correct, the formatting is not. Select the column and apply a date format.

“My accented characters are garbled.” A CSV encoding problem, not an XLSX one. Either enable the Excel BOM option on the JSON to CSV converter, or just export .xlsx, which is Unicode natively.

“My nested objects became [object Object].” Turn on flattening so address becomes address.city and address.zip columns, and pick an array mode for nested lists.

Why use this JSON to Excel tool?

Unlike converters that upload your file and cap large inputs around 10 MB, this one builds the workbook locally with no file-size limit and validates your JSON first, flagging the exact line and column of any error. Need the reverse? Use the Excel to JSON converter, or go via JSON to CSV and CSV to JSON. Learn more in our guide on how to convert JSON to Excel.

FAQ

JSON to Excel, answered.

How do I convert JSON to Excel online? +

Paste your JSON — usually an array of objects — into the converter above, choose your options, and press Download .xlsx. The tool flattens each object into a spreadsheet row, builds the header from your keys, previews the result, and saves a real .xlsx file. Everything runs in your browser, so nothing is uploaded.

Does it create a real .xlsx file or just a CSV? +

A genuine .xlsx workbook that opens in Microsoft Excel, Google Sheets, LibreOffice, and Numbers — with numbers stored as numeric cells and booleans as real values, not everything as text. You can also download a .csv from the same screen if you prefer.

Can I export multiple sheets? +

Yes. If your JSON is an object whose values are arrays — for example { "users": [...], "orders": [...] } — each key becomes its own worksheet in the workbook, named after the key. A plain array exports as a single sheet.

How are nested objects and arrays handled? +

Nested objects are flattened into dot-notation columns such as address.city. For nested arrays you choose: Expand to rows creates one row per item, Join combines them into a single cell, and Keep as JSON writes the raw array into the cell — so deeply nested JSON still produces a clean spreadsheet.

Is there a file size limit? +

No. The workbook is built entirely on your device, so the only limit is your browser's memory. Large JSON exports that tools like jsontoexcel.net reject at their 10 MB cap convert here without an upload or a paywall.

Is my data safe? +

Completely. This JSON to Excel converter is 100% client-side. Your data is converted locally and is never sent to, stored on, or seen by any server, making it safe for API responses, exports, and private records.

What is the difference between exporting CSV and a real .xlsx file? +

A CSV is plain text — every value is a string, there is only one sheet, and Excel re-guesses the types when it opens the file, which is how leading zeros and dates get mangled. A real .xlsx workbook stores typed cells, so numbers stay numbers and booleans stay booleans, and it can hold multiple sheets. This tool produces a genuine .xlsx, not a CSV with a renamed extension.

Why does Excel turn my ID into a date or drop the leading zeros? +

Because Excel auto-converts anything that looks like a date or a number when it parses text. A product code like 03-04 becomes a date, and 007 becomes 7. Exporting a real .xlsx with typed cells — as this tool does — avoids the guessing entirely, because the cell type is written into the file.

Can I split my JSON across multiple worksheets? +

Yes. If your JSON is an object whose values are arrays — for example { "users": [...], "orders": [...] } — each top-level key becomes its own worksheet, named after the key. That gives you one workbook with a Users sheet and an Orders sheet rather than three separate exports.

How do I convert JSON to Excel without uploading it? +

That is exactly what this tool does. The .xlsx file is built in your browser using JavaScript and handed to you as a download — the JSON never touches a server. Most online JSON-to-Excel converters upload your file to build the workbook, and many cap you around 10 MB; there is no cap here.