Effortlessly convert JSON to Excel
Quick reference: convert JSON to Excel with an online tool, Excel's Power Query, Node.js, or Python.
Online converter: https://formatjsononline.com/json-to-excel — fast for small, non-sensitive files.
Quick online option
If you need a one-off conversion and the data is not sensitive, the linked online converter is the fastest option:
- Open the page at https://formatjsononline.com/json-to-excel
- Paste your JSON or upload a file
- Download the resulting Excel file
In Excel (Power Query)
- In Excel, go to Data → Get Data → From File → From JSON.
- Select your JSON file. Power Query will parse and show a preview.
- Use the query editor to expand records and lists into table columns.
- Click Close & Load to import into a worksheet and save as
.xlsx.
This is convenient for occasional conversions without writing code.
Node.js (fast, scriptable)
Install a small library and run a script:
npm install xlsx
Example (ESM):
// convert.js import fs from 'fs'; import xlsx from 'xlsx'; const raw = fs.readFileSync('input.json', 'utf8'); const data = JSON.parse(raw); // json_to_sheet expects an array of objects const arr = Array.isArray(data) ? data : [data]; const ws = xlsx.utils.json_to_sheet(arr); const wb = xlsx.utils.book_new(); xlsx.utils.book_append_sheet(wb, ws, 'Sheet1'); xlsx.writeFile(wb, 'output.xlsx');
Notes:
- Use
xlsx.utils.json_to_sheetfor flat arrays of objects. - For nested objects, pre-flatten keys or use a helper to normalize fields.
Python (pandas)
Install the required packages:
pip install pandas openpyxl
Example:
import json import pandas as pd with open('input.json') as f: data = json.load(f) # json_normalize flattens nested objects into columns df = pd.json_normalize(data) df.to_excel('output.xlsx', index=False)
CSV intermediate
If a tool expects CSV, convert JSON → CSV first and open in Excel:
- Many online tools and libraries can convert JSON arrays to CSV.
- In Node.js,
json2csvorxlsxcan create CSV; in Python usepandas.DataFrame.to_csv().
Handling nested structures
- Use
pandas.json_normalize(Python) or write a small mapper in JavaScript to expand nested objects. - For arrays inside objects, you may need to explode or join values into a single cell.
Large files
- For very large JSON files, stream and process chunks rather than loading everything into memory.
- Node:
stream-jsonor incremental parsing. Python:ijsonfor iterative parsing.
Security & privacy
Do not upload sensitive or private data to online converters. Prefer local scripts (Node.js/Python) or Excel Power Query for corporate data.
Example input
[ {"id": 1, "name": "Alice", "email": "alice@example.com"}, {"id": 2, "name": "Bob", "email": "bob@example.com"} ]
This will produce a two-row table with columns id, name, and email in Excel.
If you'd like, I can:
- Add a sample
input.jsonand a runnablepackage.jsonscript for the Node example - Add a code sandbox or a small CLI page in the app to perform conversions in-browser
Tell me which next step you'd prefer.