Excel ⇄ JSON Converter

Convert a JSON array of objects to a downloadable .xlsx file, or upload an Excel/CSV file and get a JSON array back.

Nested objects are flattened to dot notation (e.g. address.city); nested arrays of primitives are joined with commas, arrays of objects are stored as a JSON string per cell.

Paste a JSON array of objects and download a real .xlsx workbook — one column per field, nested objects flattened to dot notation, ready to open in Excel, Google Sheets, or Numbers with no import wizard.

  • One-click download to a standard .xlsx workbook
  • Nested objects flattened to dot-notation columns automatically
  • Nested arrays joined or JSON-stringified per cell
  • Works the other direction too — Excel/CSV back to JSON
  • 100% private — the file is built entirely in your browser

Why convert JSON to Excel?

An API response or a database export is JSON, but the person who needs to look at it — a stakeholder, a support team, a finance analyst — works in spreadsheets. This tool turns a JSON array of objects into a real .xlsx workbook with one column per field, so it opens directly in Excel, Google Sheets, or Numbers with no import wizard.

How Nested Data Is Handled

A spreadsheet is flat, so nested JSON needs a flattening rule. Nested objects become dot-notation columns — {"address":{"city":"Surat"}} becomes a column named address.city. An array of primitives (like ["dev","go"]) is joined into one cell as dev, go; an array of objects is stored as a JSON string in the cell, since there's no clean flat representation for a one-to-many relationship inside a single row.

json
[
  { "name": "Ravi Kumar", "address": { "city": "Surat", "country": "IN" }, "tags": ["dev", "go"] }
]

becomes a sheet with these columns:

text
name        | address.city | address.country | tags
Ravi Kumar  | Surat         | IN               | dev, go

Common Use Cases

  • Stakeholder reportingTurn an API response or analytics export into a spreadsheet a non-technical reviewer can open directly
  • QA and data reviewHand a QA team a filterable, sortable spreadsheet view of test data or seed records instead of raw JSON
  • Finance and ops handoffsExport order or transaction data to Excel for reconciliation in a tool finance teams already use
  • Bulk-edit prepExport to Excel, make bulk edits with spreadsheet formulas and fill-down, then convert the edited file back to JSON

Reading the Exported File Outside the Browser

The downloaded .xlsx is a standard workbook — no special reader needed. In Python, for example:

python
# pip install pandas openpyxl
import pandas as pd

df = pd.read_excel("data.xlsx")
print(df.head())

# Back to JSON, if needed further down a pipeline
df.to_json("data.json", orient="records", indent=2)

Frequently Asked Questions

A standard .xlsx workbook (Office Open XML), openable in Excel, Google Sheets, LibreOffice Calc, and Numbers.

Objects are flattened to dot notation regardless of depth — a field three levels deep becomes a column like a.b.c. There's no limit, but very deeply nested schemas produce correspondingly long column headers.

Yes — a single object is treated as one row. For multiple rows, use a JSON array of objects.

Yes — switch to the "Excel → JSON" mode above, or use the dedicated Excel to JSON page. The first row of the sheet is used as column headers.

No — the .xlsx file is built entirely in your browser using JavaScript and downloaded directly. Nothing is sent to a server.

No — the export writes plain values only, one cell per field. It's a data export, not a full spreadsheet-authoring tool, so conditional formatting, formulas, and styling aren't part of the output.

The workbook is created with a single sheet — this keeps the export predictable for the common case of exporting one JSON array. For multi-table output, export each table separately and combine the files if needed.

Related Tools