JSON to Excel (.xlsx)
100% LocalConvert JSON arrays into downloadable Excel spreadsheets.
Ready to convert
Transform your JSON array into a properly formatted .xlsx file containing tables and headers.
Paste JSON array data to format as tab-separated values ready for Excel paste.
Learn More
Configuration Mastery: Taming the YAML vs. JSON vs. TOML War
We Benchmarked 6 JavaScript JSON Parsing Approaches: What Actually Wins in Practice
A realistic comparison of JSON.parse, streaming parsers, bigint-safe parsers, and WASM-based JSON libraries for normalized performance and memory trade-offs.
JSON Schema Validation: Stop Trusting API Responses Blindly
What is JSON to Excel (.xlsx)?
Frequently Asked Questions
Technical Deep Dive
JSON to Excel (.xlsx)
Translate JSON arrays of objects back into standard Excel `.xlsx` spreadsheets or `.csv` files. Perfect for extracting data from APIs, databases, or logs and providing it to non-technical stakeholders. Just paste your JSON data, optionally name your sheet, and click download. All processing securely stays in your browser.
Two-Way Conversion
Convert in either direction with consistent semantics on the round-trip.
Type-Faithful
Preserves nulls, numbers, booleans, and structure, no string-soup translation.
Production-Sized
Built to handle real-world payloads, not just textbook examples.
From JSON to Excel: The Last Mile of Data Sharing
Engineers produce JSON (API responses, query exports, log dumps). Business stakeholders consume Excel. The gap between them is unglamorous but real, every team has someone who's "good at spreadsheets" and someone who writes APIs, and they need to share data. CSV is the lowest common denominator; .xlsx is the better tradeoff when you care about types and structure.
What XLSX Gives You Over CSV
| Feature | CSV | XLSX |
|---|---|---|
| Number/date/boolean types | No (all text) | Yes |
| Multiple sheets | No | Yes |
| Cell formatting | No | Yes |
| Formulas | No | Yes |
| Frozen rows/columns | No | Yes |
| Charts | No | Yes |
| File size | Small | Larger (zipped XML) |
| Diff-friendly | Yes | No (binary-ish) |
| Streaming-friendly | Yes | Mostly no |
For data handed to humans who'll work with it in a spreadsheet app, .xlsx is usually the right format. For data piped into another tool (a Python script, a database load), CSV is simpler.
The Conversion Process
That's the core flow. The library handles XML generation, type inference (numbers, dates, strings), and ZIP packaging.
Flattening Nested Objects
JSON has hierarchical structure; spreadsheets are flat tables. Conventions:
Dot-notation flatten:
→
| user.name | user.email | score |
|---|---|---|
| Alice | a@b.com | 95 |
Array explode (arrays of objects):
→
| order | items.sku |
|---|---|
| 1 | A |
| 1 | B |
Array join (arrays of primitives):
→
| id | tags |
|---|---|
| 1 | red | blue |
JSON cell (preserve structure):
→
| id | metadata |
|---|---|
| 1 | {"...":"..."} |
Pick based on what the recipient will do, explode if they'll filter/pivot in Excel; flatten if they want clean columns; JSON-cell if they'll re-parse later.
Type Handling
The library detects ISO 8601 dates and converts them to Excel's date serial numbers, with appropriate cell formatting. Numbers with leading zeros stay as strings (otherwise 007 would display as 7 in Excel).
Multiple Sheets
Result: one .xlsx with three tabs.
Memory and Limits
| Limit | Source |
|---|---|
| 1,048,576 rows per sheet | Excel format |
| 16,384 columns per sheet | Excel format |
| ~32k chars per cell | Excel format |
| Browser memory | Practical |
For 100k+ rows, the browser libraries work but slow down (seconds-long conversion). For millions of rows, generate server-side or split into multiple files.
Common Workflows
- Customer export: backend returns JSON, frontend converts to .xlsx for "Download as Excel" button. User opens, manipulates, shares.
- Report generation: scheduled job pulls data, generates multi-sheet .xlsx, emails to stakeholders.
- Data handoff to analysts: paste API response, get .xlsx, hand to a non-technical analyst.
- Migration scripts: dump database as JSON, convert to .xlsx for review before importing into another system.
- Form-data download: collect submissions as JSON, periodically export to .xlsx for offline analysis.
Excel Quirks to Know About
- Date display depends on locale: "12/3/2024" means Dec 3 in US, Mar 12 in EU. Use ISO format if you can, or write a "format hint" sheet explaining.
- Long numbers as scientific notation: 20-digit account numbers display as "1.23457E+19". Stored correctly internally, displayed misleadingly. Solution: store as text.
- CSV with non-UTF-8 BOM: when Excel opens a CSV, it may misinterpret encoding. The .xlsx format avoids this entirely (it's always UTF-8 inside).
- Frozen rows: useful for headers; requires the underlying library to support
!freezeconfig.
Privacy Note
JSON parsing, type inference, XLSX construction (XML + ZIP), and the download all happen in the browser. The actual workbook bytes are built in memory and offered for save. Nothing transmits. This matters because the typical use case, converting business data for a report, is exactly the data you'd hate to leak. Network tab is silent during the entire convert+download flow.