JSON to Excel Converter – Free Online, No Upload

Convert JSON to Excel (.xlsx) instantly in your browser. Paste your JSON array, get a formatted spreadsheet with correct number types. Free, no signup, no

JSON
Excel preview
nameagecity
Alice30New York
Bob25Los Angeles

Quick preview: same data, two formats

Paste your JSON array into the tool above and download a ready-to-open .xlsx spreadsheet in seconds — nothing is uploaded, everything runs in your browser.

JSON inputExcel output (row view)
[
  {"name":"Alice","age":30,"city":"London"},
  {"name":"Bob","age":25,"city":"Paris"}
]
nameagecity
Alice30London
Bob25Paris

The converter auto-detects numbers (so 30 lands as a real Excel number, not text), keys become column headers, and each object becomes one row. Your data never leaves your device.

Convert JSON to Excel in seconds

Got a JSON array from an API response, a database export, or a config file — and need it in a spreadsheet? Paste it above and hit Download .xlsx. You get a properly formatted Excel file with column headers already in place, ready to open, sort, and filter.

No account needed, no file size caps buried in a paywall, and nothing is sent to a server. The entire JSON to Excel conversion happens inside your browser.

How to use it

  1. Paste your JSON into the input box. It should be an array of objects — like the example above.
  2. Check the preview. The tool renders your data as a table so you can catch any issues before downloading.
  3. Click "Download .xlsx" (or copy as CSV if you just need the raw values). Your file saves instantly.
  4. Open in Excel, Google Sheets, or LibreOffice. Headers and data types come through correctly.

Worked example

Say you pull order data from an API and the response looks like this:

[
  { "order_id": 1001, "customer": "Priya Sharma", "total": 149.99, "status": "shipped" },
  { "order_id": 1002, "customer": "Carlos Ruiz",  "total": 39.50,  "status": "pending" },
  { "order_id": 1003, "customer": "Mei Lin",      "total": 275.00, "status": "shipped" }
]

After conversion, your .xlsx file has four columns — order_id, customer, total, status — with each order on its own row. The total values are stored as real numbers, so you can SUM them in Excel without any extra steps. String fields like status stay as text.

How to do this in Python or JavaScript

If you need to automate the conversion in code, here are minimal working examples.

Python (pandas)

import pandas as pd
import json

data = [
    {"order_id": 1001, "customer": "Priya Sharma", "total": 149.99, "status": "shipped"},
    {"order_id": 1002, "customer": "Carlos Ruiz",  "total": 39.50,  "status": "pending"},
]

df = pd.DataFrame(data)
df.to_excel("orders.xlsx", index=False)
# Requires: pip install pandas openpyxl

The index=False argument stops pandas from adding a row-number column you didn't ask for. The openpyxl library handles the actual .xlsx writing.

JavaScript (Node.js, ExcelJS)

const ExcelJS = require('exceljs');

const data = [
  { order_id: 1001, customer: 'Priya Sharma', total: 149.99, status: 'shipped' },
  { order_id: 1002, customer: 'Carlos Ruiz',  total: 39.50,  status: 'pending' },
];

async function jsonToExcel(rows, filename) {
  const workbook = new ExcelJS.Workbook();
  const sheet = workbook.addWorksheet('Orders');
  sheet.columns = Object.keys(rows[0]).map(key => ({ header: key, key }));
  rows.forEach(row => sheet.addRow(row));
  await workbook.xlsx.writeFile(filename);
}

jsonToExcel(data, 'orders.xlsx');
// Install: npm install exceljs

For a one-off conversion you don't need any code at all — just use the tool above. These snippets are handy when you're building a pipeline or automating exports on a schedule.

How it works

The converter reads your JSON, flattens the top-level array into rows, and collects every unique key across all objects to build the column list. Values are typed automatically — numbers stay as numbers, strings stay as text, and null becomes an empty cell.

The resulting file uses the Office Open XML format (the standard behind .xlsx, defined by ECMA-376). That means it opens natively in Excel, Google Sheets, LibreOffice Calc, and Numbers without any plugins or conversions.

Everything runs client-side in your browser. No data is transmitted, stored, or logged anywhere.

When to use this tool — and when not to

Use it when...Consider another approach when...
You need a quick, shareable spreadsheet from an API or exportYour JSON is deeply nested (3+ levels) — you may need to flatten it first
Your JSON is a flat array of objects (the most common format)You need multiple worksheets or complex Excel formulas baked in
You want Excel-native number formatting (SUM, filters, pivot tables)You only need plain text and CSV is fine — use the CSV output instead
You're on a shared computer and can't install softwareYou're automating daily exports — use pandas or ExcelJS in a script

Before you convert: make sure your JSON is valid

If the preview shows an error, your JSON might have a typo — a trailing comma, a missing bracket, or unquoted keys. Run it through our JSON Validator to find and fix the issue first. You can also use the JSON Beautifier to indent and clean it up so problems are easier to spot.

Once it's valid and readable, drop it back here to export it to Excel. If you want to inspect or share it first, the JSON Viewer lets you explore the structure interactively. Need to strip whitespace before piping it through an API? The JSON Minifier compresses it in one click.

Paste your JSON above, hit download, and your spreadsheet is ready. That's all there is to it.

Frequently asked questions

Is my data uploaded to a server when I convert JSON to Excel?+
No. The conversion runs entirely in your browser using JavaScript. Your JSON never leaves your device — nothing is sent to any server, stored, or logged. It's safe to use with sensitive or internal data.
What JSON format does the tool expect?+
It expects a JSON array of objects, like [{"name":"Alice","age":30},{"name":"Bob","age":25}]. Each object becomes one Excel row, and the keys become column headers. A single object (not wrapped in an array) also works — it produces a one-row spreadsheet.
What happens to nested JSON objects or arrays inside my data?+
The tool handles flat arrays best. If a value is a nested object or array, it will be converted to a string in that cell. For deeply nested JSON, you'll get better results if you flatten it first — either manually or with a tool like jq on the command line.
Can I convert JSON to Excel in Python?+
Yes. The quickest way is pandas: pd.DataFrame(data).to_excel('file.xlsx', index=False). You also need openpyxl installed (pip install pandas openpyxl). See the full example in the 'How to do this in Python' section above.
Can I convert JSON to Excel in JavaScript or Node.js?+
Yes — the ExcelJS package (npm install exceljs) is the most popular option. There's a minimal working example in the 'JavaScript' section above. For browser-side exports, SheetJS (xlsx) is widely used.
Is the tool free? Do I need to sign up?+
Completely free, no account needed, no email required. Just paste your JSON and download the .xlsx file.
What's the difference between .xls and .xlsx?+
.xlsx is the modern Office Open XML format used by Excel 2007 and every version since. .xls is the older binary format from Excel 97–2003. This tool produces .xlsx, which opens in Excel, Google Sheets, LibreOffice Calc, and Apple Numbers without any conversion step.
My JSON has different keys in different objects — will that cause problems?+
No. The tool collects every key across all objects and uses the full set as column headers. If a particular object doesn't have a key, that cell is left blank. You won't lose any data.