Excel to JSON Converter
Convert Excel spreadsheets to JSON format. Upload a file or paste directly from Excel:
Click to upload Excel file
Supports .xlsx, .xls, .csv, .tsv files
Convert Excel to JSON
This tool transforms Excel spreadsheet data into JSON format, making it easy to use your tabular data in web applications, APIs, and databases. The conversion runs entirely in your browser — no data is uploaded to any server.
How to Use
- Upload a file — Click the upload area and select an Excel file (.xlsx, .xls, .csv)
- Or paste data — Copy cells from Excel and paste into the text area
- Get JSON — Your data is instantly converted to JSON format
- Copy or download — Use the buttons to copy to clipboard or download as .json
Supported Formats
| Format | Extension | Notes |
|---|---|---|
| Excel XML | .xls | Older Excel format, widely compatible |
| CSV | .csv | Comma-separated values |
| TSV | .tsv, .txt | Tab-separated values |
| Clipboard | — | Direct paste from Excel (tab-separated) |
How Data is Converted
The first row of your spreadsheet becomes the JSON property names (keys), and each subsequent row becomes an object in the output array:
Excel input
| name | age | city |
|-------|-----|----------|
| Alice | 30 | New York |
| Bob | 25 | Boston |JSON output
[
{ "name": "Alice", "age": 30, "city": "New York" },
{ "name": "Bob", "age": 25, "city": "Boston" }
]Data Type Detection
The converter automatically detects and preserves data types:
- Numbers — Numeric cells become JSON numbers
- Booleans — "true"/"false" become JSON booleans
- Text — Everything else becomes JSON strings
- Empty cells — Become empty strings
Copy-Paste from Excel
The fastest way to convert small datasets: select cells in Excel, press Ctrl+C (Cmd+C on Mac), then paste directly into the text area. Excel uses tab characters as delimiters when copying, which this tool handles automatically.
Privacy & Security
Your data never leaves your computer. The entire conversion process runs in your web browser using JavaScript. No files are uploaded to any server, making this safe for sensitive or confidential data.
Programmatic Conversion
JavaScript (with SheetJS)
import * as XLSX from 'xlsx';
const file = await fetch('data.xlsx');
const buffer = await file.arrayBuffer();
const workbook = XLSX.read(buffer);
const sheet = workbook.Sheets[workbook.SheetNames[0]];
const json = XLSX.utils.sheet_to_json(sheet);
console.log(JSON.stringify(json, null, 2));Python (with pandas)
import pandas as pd
import json
df = pd.read_excel('data.xlsx')
json_data = df.to_json(orient='records')
print(json.dumps(json.loads(json_data), indent=2))Common Use Cases
- API development — Convert sample data to JSON for testing
- Database seeding — Transform spreadsheet data for database imports
- Web applications — Use spreadsheet data in JavaScript apps
- Data migration — Convert legacy Excel data to modern formats
- Configuration files — Transform spreadsheet configs to JSON
Related Tools
- JSON to Excel — Convert JSON back to Excel format
- CSV to JSON — Convert CSV files to JSON
- JSON Validator — Validate your JSON output
- JSON to Table — View JSON as a table
Frequently Asked Questions
Is my data secure?
Yes. All processing happens in your browser. Your Excel file is never uploaded to any server. You can verify this by using the tool offline or checking your browser's network tab.
What's the maximum file size?
Since processing happens in your browser, the limit depends on your device's memory. Most modern browsers handle files up to 50MB without issues. For very large files, consider using a programming library.
Can I convert multiple sheets?
Currently, the tool converts the first sheet only. For multi-sheet workbooks, export each sheet separately or use a programming library for full control.
Why are my numbers becoming strings?
Ensure your Excel cells are formatted as numbers, not text. If cells contain leading zeros (like zip codes), they may be stored as text intentionally.
Can I convert .xlsx files?
For best results with .xlsx files, save your spreadsheet as .csv or .xls (Excel 97-2003 format) first. Alternatively, copy the data directly from Excel and paste it into the text area.
Common Mistakes & Pro Tips
- Dates often arrive as serial numbers, not dates — Excel stores dates internally as a number of days since 1899-12-30 (the 1900 date system), so a cell showing 2024-03-01 may convert to 45352. Use a converter that reads the cell's number format to emit an ISO date string, or convert serials yourself with the 1899-12-30 epoch.
- A workbook has multiple sheets — pick the right one — An .xlsx file can contain many worksheets, and most converters default to the first sheet only. If your data is on "Sheet2" or a named tab, select it explicitly, or you'll silently convert the wrong (or an empty) sheet.
- Merged cells leave blanks behind — When cells are merged, the value lives only in the top-left cell and the rest of the merged range reads as empty. This commonly turns grouped headers or category labels into nulls on every row except the first, so flatten/unmerge or forward-fill those columns before relying on them.
- Leading zeros vanish when stored as numbers — If a column like ZIP code or SKU was typed as a number in Excel, 01234 is stored as 1234 and the zero is gone before you ever export. The only fix is at the source: format those columns as Text in Excel so the original digits are preserved.
- The displayed value can differ from the stored value — Excel shows formatted/rounded values (a cell may display 3.14 while storing 3.14159265) and formula cells display a result while storing the formula. Decide whether you want the cached computed value or the raw stored number, since these can differ by many decimal places.
Frequently Asked Questions
How do I convert an Excel file to JSON?
Upload your .xlsx file; the converter reads the first worksheet's header row as keys and turns each data row into a JSON object. If your data is on another tab, choose that sheet first. The output is an array of objects, one per row.
Why do my dates show up as numbers like 45352?
That number is Excel's internal date serial, counting days from 1899-12-30. Enable date formatting so the tool reads each cell's format and outputs an ISO string like "2024-03-01", or convert the serial yourself: day 1 is 1900-01-01 (with Excel's well-known 1900 leap-year quirk built into the offset).
Does it support .xls or only .xlsx?
Modern converters built on libraries like SheetJS can read both the legacy binary .xls format and the XML-based .xlsx format, plus .csv. The .xlsx format is recommended because it is the current standard and avoids the older format's size and compatibility limits.
How do I convert a specific sheet instead of the first one?
After loading the workbook, use the sheet selector to choose the worksheet you want by name; only the selected sheet is converted. If you need every sheet, convert them one at a time, or use a tool option that emits an object keyed by sheet name.
Why are some cells empty that look filled in Excel?
The most common cause is merged cells, where only the top-left cell holds the value and the rest of the merged range is genuinely empty in the file. Unmerge those ranges or forward-fill the values before converting if you need them on every row.
Is my spreadsheet uploaded anywhere?
No. The .xlsx file is parsed locally in your browser and never transmitted to any server, so even sensitive financial or HR spreadsheets stay on your device. You can confirm this by disconnecting from the network and watching the conversion still work.