MergeJSON

How to Convert JSON to Excel: Real XLSX, Multiple Sheets & Nested Data

Convert JSON to Excel the right way — produce a real .xlsx with typed cells, split arrays into multiple sheets, and handle nested objects. Online, in Python, and in Node.

Published June 14, 2026

Turning JSON into an Excel file sounds simple, but there’s a trap: many tools just rename a CSV to .xls, which Excel greets with a scary warning and which stores every value — including your totals — as text. This guide shows how to convert JSON to Excel properly: a real .xlsx workbook with typed cells, multiple sheets, and nested data handled deliberately. Online, in Python, and in Node.

The quickest way: convert JSON to Excel online

For a one-off conversion, use a browser tool. Copy your JSON (typically an array of objects), paste it into the JSON to Excel converter, and click Download .xlsx. The first object’s keys become your header, each object becomes a row, and you get a genuine workbook — numbers as numbers, booleans as booleans.

Choose a tool that runs client-side (ours does) so your data is never uploaded — important for exports with customer or financial data. It also means there’s no file-size cap: tools like jsontoexcel.net stop at around 10 MB because they convert on a server, while a local tool is limited only by your machine’s memory.

Use it when: you want a fast, private conversion on any device with no install.

Insist on a real .xlsx (not a renamed CSV)

This is the difference that matters. A true .xlsx is a ZIP of XML parts where each cell carries a type. When numbers are stored as numeric cells:

  • =SUM() and other formulas work immediately
  • sorting is numeric, not alphabetical (so 10 doesn’t sort before 2)
  • no green “number stored as text” warning triangles

A CSV-renamed-to-xls loses all of that. If a converter can’t open its own output in Excel without a warning, it isn’t really converting to Excel.

Split arrays into multiple worksheets

A workbook can hold many tables, and JSON often has several related arrays. When your JSON is an object whose values are arrays:

{
  "users":  [{ "id": 1, "name": "Ada" }],
  "orders": [{ "id": 9, "total": 42 }]
}

each key can become its own worksheet — a users sheet and an orders sheet — instead of being crammed into one table. Our converter detects this layout automatically; a plain array simply becomes a single sheet.

Handle nested objects and arrays

Spreadsheets are flat, so nesting needs a plan:

  • Nested objects flatten into dot-notation columns: { "address": { "city": "London" } } becomes a column address.city.
  • Nested arrays have no single right answer, so you choose: expand to rows (one row per item), join into a single cell (admin, editor), or keep as JSON (the raw array in one cell).

Deciding deliberately is the difference between a tidy sheet and a wall of [object Object].

Convert JSON to Excel in Python

For pipelines, pandas writes a real .xlsx (install openpyxl as the engine):

import pandas as pd

df = pd.read_json("data.json")          # array of objects → DataFrame
df.to_excel("data.xlsx", index=False)   # real xlsx, typed cells

For multiple sheets, use an ExcelWriter:

with pd.ExcelWriter("data.xlsx") as xw:
    pd.DataFrame(data["users"]).to_excel(xw, sheet_name="users", index=False)
    pd.DataFrame(data["orders"]).to_excel(xw, sheet_name="orders", index=False)

pd.json_normalize(data) flattens nested objects into dotted columns before writing.

Convert JSON to Excel in Node.js

In Node, a spreadsheet library handles the binary format for you:

import * as XLSX from "xlsx";
import { readFileSync } from "node:fs";

const rows = JSON.parse(readFileSync("data.json", "utf8"));
const ws = XLSX.utils.json_to_sheet(rows);
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
XLSX.writeFile(wb, "data.xlsx");

This is reliable but adds a sizeable dependency — overkill for a one-off, where the online tool is faster.

Which method should you use?

For a quick, private conversion — especially when you want multiple sheets or a real typed workbook without installing anything — use the online JSON to Excel converter: paste, choose how arrays expand, and download. Use Python/pandas when the export is part of a data pipeline, and a Node library when it lives inside a JavaScript service. Whichever you pick, insist on a real .xlsx and decide up front how nested data should land.

Need the reverse? See how to convert Excel to JSON. Working with text formats? Read how to convert JSON to CSV, and new to the format, what is JSON.

Ready to merge your JSON?

Combine files or snippets in your browser — free and private.

Open the merge tool

Keep reading