Quick demo — same data, two formats:
| Excel spreadsheet (CSV view) | Resulting JSON |
|---|---|
| |
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
- 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
.xlsxor.csvfile directly. - Paste into the input panel above. The tool auto-detects whether you pasted tab-separated values (from Excel) or CSV.
- Choose JSON as the output format in the format selector.
- 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.00After 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.