Skip to content

JSON to Excel XLSX converter

JSON to XLSX runs through our table engine, creating one worksheet whose column order follows first-seen keys.

  • Converted with Table engine · nothing stored
  • Free: 5 conversions a day · 5 MB each
  • Higher limits →

From real runs

What you get — and what changes

  • Top-level records Kept

    A JSON array of objects becomes one Excel row per object.

  • Column order Changed

    Columns are ordered by first-seen key order as records are scanned, then late keys are appended to the right.

  • Nested objects Changed

    Flattening matches JSON to CSV behavior, using dot.path columns for nested objects.

  • Arrays Changed

    Arrays become JSON strings or indexed columns depending on the array mode, so product variants can remain readable.

  • Workbook shape Changed

    The output is a single-sheet XLSX workbook, not one sheet per nested collection.

  • Unicode Kept

    Unicode text is written into the workbook cells without CSV encoding concerns.

  • JSON types Changed

    Booleans, numbers, strings, and nulls map to worksheet cell values; object structure beyond the table is flattened or stringified.

Sample conversions

Products with variants

Input
JSON: [{"id":"p-100","name":"Hoodie","variants":[{"sku":"H-S","stock":12}],"price":49}]
Output
XLSX columns in first-seen order: id, name, variants, price when arrays are stringified; indexed mode expands variants.0.sku and variants.0.stock.

Late key appended

Input
JSON: [{"email":"ada@example.com","plan":"Starter"},{"email":"bo@example.com","plan":"Pro","trialEnds":"2026-10-01"}]
Output
Workbook columns are email, plan, trialEnds; the first row has an empty trialEnds cell.

International customer notes

Input
JSON: [{"name":"Zoë","note":"東京 launch 🚀","active":true}]
Output
XLSX keeps accents, Japanese characters, emoji, and the boolean cell value.

A real JSON → Excel XLSX run

We converted our JSON sample (557 B) with Table engine on 2026-10-20. It took 1 ms and produced a 17 KB Excel XLSX file, 31× larger than the input. The engine raised no warnings.

Input · sample.json · 557 B

Array of 4 objects; keys: company, stage, arr, owner, close_date

Records
4
Keys
company, stage, arr, owner, close_date

Output · sample.xlsx · 17 KB

Workbook with 1 sheet (json); first sheet 5 rows, 25 cells, 0 formulas, header filter, fitted column widths

Sheets
1
Sheet names
json
Rows
5
Cells
25
Formulas
0
Header filter
yes
Column widths
fitted

Options and when to change them

flatten
Turn on for spreadsheet-friendly columns; leave off to keep nested values as JSON text in cells.
arrayMode
Stringify arrays for variable product variants; use indexed columns for fixed-size arrays that analysts filter in Excel.
flattenSeparator
Keep dot paths for most spreadsheet users; switch when source keys already include dots.
sheetName
Name the single worksheet Products, Events, or another target-specific label.

Do it yourself

pandas json_normalize

bash
python - <<'PY'
import json
import pandas as pd
with open("products.json", encoding="utf-8") as fh:
    data = json.load(fh)
pd.json_normalize(data).to_excel("products.xlsx", index=False, sheet_name="Products")
PY

Arrays normally need custom expansion or stringification before writing to Excel.

jq plus csvkit workflow

bash
jq -r '(map(keys) | add | unique) as $cols | $cols, map([.[ $cols[] ]])[] | @csv' in.json > out.csv

This creates CSV, not XLSX; open it in Excel or use Python when a workbook file is required.

JSON to Excel XLSX by API or MCP

The HTTP API and the MCP server run the exact engine this page uses (Table engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=json&to=xlsx.

curl
curl -X POST https://filetypeconverters.com/api/v1/convert \
  -H "Authorization: Bearer $FTC_API_KEY" \
  -F "file=@input.json" -F "from=json" -F "to=xlsx" \
  -F 'options={"encoding":"utf-8"}' \
  --output output.xlsx

Options this engine accepts for JSON → Excel XLSX

KeyApplies toTypeDefault
encodingReading JSONutf-8 · latin1utf-8
flattenSeparatorReading JSONstring.
arrayModeReading JSONjson · explodejson
sheetNameWriting Excel XLSXstring
API reference

When this is the wrong conversion

  • JSON to XLSX is a poor fit for deeply nested API payloads where relationships matter more than a flat table.
  • If you need multiple worksheets, split the JSON into separate arrays and convert each sheet intentionally.
  • For warehouse ingestion, Parquet usually preserves types and compresses better than XLSX.

JSON to Excel XLSX questions

Does JSON to XLSX create multiple sheets?

No. It creates one sheet. Nested objects are flattened or stringified instead of becoming separate worksheets.

How is column order chosen?

Columns follow first-seen key order. Keys that appear only in later records are appended after the earlier columns.

Are arrays preserved in Excel?

Arrays are changed into JSON strings or indexed columns. Excel does not have a native nested array cell type.