Excel to JSON Converter - Free Online Tool

Convert Excel spreadsheets to JSON instantly in your browser. Paste or upload your .xlsx file — no sign-up, no upload to server. Numbers auto-detected.

Excel data (TSV)
JSON

Quick demo — same data, two formats:

Excel spreadsheet (CSV view)Resulting JSON
Name,Age,City
Alice,30,"New York"
Bob,25,Austin
[
  { "Name": "Alice", "Age": 30, "City": "New York" },
  { "Name": "Bob",   "Age": 25, "City": "Austin" }
]

Paste your spreadsheet data (or upload the file), then copy or download the JSON. The tool handles quoted fields automatically and detects numbers so Age comes out as 30, not "30". The entire conversion runs in your browser — nothing is ever uploaded to a server.

Turn Your Excel Data into JSON in Seconds

Got an Excel spreadsheet that an API, database, or JavaScript app needs as JSON? Paste your data (or drag in the file) and the converter spits out clean, properly typed JSON — column headers become keys, rows become objects, and numbers stay numbers.

No sign-up, no file upload to a server, no waiting. Everything converts right in your browser, so sensitive data never leaves your machine.

How to Convert Excel to JSON

  1. Copy your data from Excel — select any range (including the header row) and press Ctrl+C / Cmd+C. Or click the upload button to load an .xlsx or .csv file directly.
  2. Paste into the input panel above. The tool auto-detects whether you pasted tab-separated values (from Excel) or CSV.
  3. Choose JSON as the output format in the format selector.
  4. Copy or download the result from the output panel. Done.

Worked Example: Sales Report to JSON Array

Say you have this small sales table in Excel:

Product,Units,Price
Widget A,120,9.99
Widget B,45,24.50
Gadget C,8,149.00

After converting, you get a JSON array of objects:

[
  { "Product": "Widget A", "Units": 120, "Price": 9.99 },
  { "Product": "Widget B", "Units": 45,  "Price": 24.50 },
  { "Product": "Gadget C", "Units": 8,   "Price": 149.00 }
]

Notice that Units and Price are actual numbers, not strings — so you can do math on them immediately in any language without extra parsing.

How to Do This in Code

If you need to automate the conversion (e.g. in a build script or backend job), here are the most common one-liners.

Python

# pip install openpyxl
import openpyxl, json

wb = openpyxl.load_workbook('data.xlsx')
ws = wb.active
rows = list(ws.values)
headers = rows[0]
result = [dict(zip(headers, row)) for row in rows[1:]]
print(json.dumps(result, indent=2))

JavaScript (Node.js)

// npm install xlsx
const XLSX = require('xlsx');
const workbook = XLSX.readFile('data.xlsx');
const sheet = workbook.Sheets[workbook.SheetNames[0]];
const json = XLSX.utils.sheet_to_json(sheet);
console.log(JSON.stringify(json, null, 2));

The SheetJS (xlsx) library is the de-facto standard for Excel parsing in JavaScript — both in the browser and Node.js. The online tool above uses the same underlying parsing logic.

How It Works

When you paste Excel data, your browser receives tab-separated values (TSV). The converter splits rows on line breaks, splits cells on tabs (or commas for CSV), and treats the first row as column headers. Each subsequent row becomes a JSON object where the keys are those headers.

During conversion, the tool runs a type-detection pass: cells that look like pure numbers are stored as JSON numbers, everything else becomes a string. Multi-word cells with commas are handled by standard CSV quoting rules — no manual escaping needed. The RFC 4180 CSV spec defines those quoting rules if you want the fine print.

If you need to tidy up the output after converting, try the JSON Beautifier to re-indent it, or the JSON Minifier to strip whitespace for production use.

When to Use This Tool (and When Not To)

  • Use it when you have a flat table — rows and columns with one header row — and you want a JSON array to feed an API, config file, or frontend app.
  • Use it for quick one-off conversions during development so you don't have to write a throw-away script.
  • Use it when you need the result right now and can't install a library or open a terminal.
  • Skip it if your Excel file has merged cells, multiple sheets you want combined, or deeply nested formulas — those structures don't map cleanly to a flat JSON array. A dedicated library like SheetJS gives you more control for complex workbooks.
  • Skip it if your final target is YAML rather than JSON — in that case convert to JSON first, then use the JSON to YAML Converter.

Validating Your Output

Once you have the JSON, it's worth giving it a quick sanity check — especially if the data came from a messy spreadsheet. Paste it into the JSON Validator to catch any syntax errors, or open it in the JSON Viewer to browse it in a collapsible tree before sending it to an API.

Need a compact version for a network request? The JSON Pretty Print tool lets you toggle between indented and single-line output in one click.

Bottom line: converting a spreadsheet to JSON shouldn't take more than 30 seconds. Paste your table into the converter above and you're done.

Frequently asked questions

Is my Excel data uploaded to a server?+
No. The conversion happens entirely inside your browser using JavaScript. Your spreadsheet data never leaves your device, so it's safe to use with confidential or internal data.
Can I convert an .xlsx file directly, or does it have to be CSV?+
You can upload an .xlsx file directly — the tool parses it in the browser without any server involved. You can also paste tab-separated data copied straight from Excel, or paste a CSV and it will work just as well.
My numbers are coming out as strings (e.g. "30" instead of 30). How do I fix that?+
Make sure the cells in Excel are formatted as numbers, not text, before you copy or export. If you're pasting CSV, check that there are no stray quotes wrapping the number cells. The converter applies automatic type detection, but a cell like '"30"' (with quotes) will stay a string.
How do I convert Excel to JSON in Python?+
Install openpyxl with pip install openpyxl, load the workbook, grab the active sheet values, zip the first row as headers with each subsequent row, and pass the result through json.dumps(). The worked example on this page shows the exact code.
How do I convert Excel to JSON in JavaScript or Node.js?+
Use the SheetJS library (npm install xlsx). Call XLSX.readFile() on your file and then XLSX.utils.sheet_to_json() on the target sheet. The worked example above includes copy-pasteable code for this.
What's the difference between converting Excel to JSON and exporting CSV first?+
Exporting to CSV and then converting is a two-step workaround. This tool skips that — it accepts .xlsx files directly. The end result (a JSON array) is the same either way, so use whichever starting point is more convenient for you.
Is there a row or file size limit?+
There's no hard cap, but very large files (tens of thousands of rows or files over ~50 MB) may slow down in the browser. For bulk or automated jobs with large datasets, a server-side script using openpyxl (Python) or SheetJS (Node.js) will be faster and more reliable.
Is this tool free? Do I need to create an account?+
Completely free, no account needed. Open the page, paste your data, and convert — that's it.