Convert JSON to Excel: Three Approaches Compared
API response in JSON, stakeholder wants Excel. Three ways to do the conversion — quick online tool, command-line scripting, or building it yourself — with concrete trade-offs.
Convert JSON to Excel: Three Approaches Compared
You hit an API endpoint, get back 500 JSON records, and your stakeholder asks for "the Excel version." Three legitimate ways to solve it, each with real trade-offs.
Approach 1: A free online converter
Open SwitchPDF's JSON Converter, paste your JSON, see a live preview, click "Convert to Excel," done in 30 seconds. The tool flattens nested objects using dot notation — address.city, address.zip — so each nested field becomes its own column.
Pros: Zero setup. Handles nested objects automatically. Works from any device.
Cons: Your data goes to a server briefly. For sensitive data, use a local approach.
When to use: Quick one-off, non-sensitive data, when you don't want to write code.
Approach 2: A command-line one-liner
Python with pandas
pip install pandas openpyxl
python -c "
import pandas as pd, json
data = json.load(open('input.json'))
pd.json_normalize(data).to_excel('output.xlsx', index=False)
"
pd.json_normalize is built specifically for flattening nested JSON.
Node.js with xlsx
npm install xlsx
const xlsx = require('xlsx')
const fs = require('fs')
const data = JSON.parse(fs.readFileSync('input.json'))
const flat = data.map(row => ({
id: row.id,
name: row.name,
'address.city': row.address.city,
}))
const wb = xlsx.utils.book_new()
xlsx.utils.book_append_sheet(wb, xlsx.utils.json_to_sheet(flat), 'Data')
xlsx.writeFile(wb, 'output.xlsx')
Pros: Data never leaves your machine. Repeatable. Customizable.
Cons: Requires a working Python or Node environment.
When to use: Sensitive data, repeated conversions, batch jobs.
Approach 3: Building it into your own app
If JSON-to-Excel is a recurring user need in your product, ship it as a feature. A minimal Node.js + Express endpoint takes ~30 lines using xlsx. This is what SwitchPDF's JSON Converter backend does.
Pros: Fits into your product. Users don't leave your app.
Cons: Real engineering effort.
When to use: Frequent user-facing need where in-app experience matters.
Quick decision guide
- One-off, non-sensitive: Online tool
- Sensitive data or batches: CLI
- In-product feature: Build it
The common thread: flatten nested objects with dot notation. Once you know that's the trick, every JSON-to-spreadsheet problem becomes a question of where to run the flattener.
Related articles
Markdown to Word: A Developer's Guide to Sharing Docs With Non-Developers
You write everything in Markdown. Your clients want Word docs. Here's how to bridge the gap cleanly with the right tools and a few formatting tricks.
Online PDF Tools vs Desktop Software: Which Should You Use?
Adobe Acrobat costs $15+/month, free online tools are free. The real trade-off is more nuanced than price. Here's when each one is the right choice.
Password Protection vs Permission Restrictions: PDF Security Explained
Encrypting a PDF and disabling printing are two different things. Here's what each actually protects against and how to use them right.