Most JSON converters do not accept Excel files — but every one of them accepts CSV, and Excel can save as CSV in two clicks. That is the trick. Export as CSV first, then convert the CSV to JSON. This guide walks through the entire process from an Excel user's perspective, including every pitfall that ruins conversions.
Total time: under 60 seconds. No code. No software installation. No account signup. No file upload to a server.
| Method | Difficulty | Cost | Reliability | Works For Non-Developers? |
|---|---|---|---|---|
| CSV export + browser converter | ✓ Easy — 2 clicks + paste | ✓ Free | ✓ Works every time | ✓ Yes |
| Excel Power Query | ~Moderate — multiple steps | ✓ Free (built into Excel) | ~Fragile with complex data | ~Requires Excel knowledge |
| VBA macro | ✗ Advanced — code required | ✓ Free | ✗ Breaks with data changes | ✗ No — needs VBA knowledge |
| Excel add-ins (third-party) | ~Easy after install | $10-50/year | ~Varies by add-in | ✓ Yes, but costs money |
| Python with openpyxl | ✗ Advanced — code required | ✓ Free | ✓ Reliable | ✗ No — needs Python |
| Online .xlsx converters | ✓ Easy | ✓ Free | ~Varies | ✓ Yes, but uploads your data |
Excel "helpfully" modifies your data before you even export. These changes carry through to your JSON and can break downstream systems:
"01/02/2026" means January 2nd in the US and February 1st in the UK. Excel stores dates as serial numbers internally and displays them based on your system locale. When you export to CSV, the displayed format is what gets saved.
Fix before exporting: Select your date column, right-click → Format Cells → Custom → type YYYY-MM-DD. This gives you unambiguous ISO 8601 dates (2026-01-02) that every system interprets correctly.
Zip codes (07302 → 7302), product codes (000123 → 123), and phone numbers (0044... → 44...) lose their leading zeros the moment you type them into a default Excel cell. Excel sees a number and drops the "unnecessary" zeros.
Fix: Format the column as Text before entering data. If data is already entered, use =TEXT(A1,"00000") for zip codes to re-add the padding.
Credit card numbers (4111111111111111), tracking numbers, and other long numeric strings get converted to scientific notation (4.11111E+15). The precision is lost — you cannot recover the original number.
Fix: Format as Text before pasting long numbers. If already in scientific notation, the original value is gone — you need the source data.
Merged cells look clean in a spreadsheet but export as one value plus empty cells. In your JSON, this creates objects with missing fields.
Fix: Home → Merge & Center → Unmerge Cells. Then fill the blank cells with the correct values before exporting.
A cell showing "$45.99" that contains =B2*1.1 exports as the displayed value, not the formula. This is usually what you want — but verify that calculated values are correct before exporting.
| Pitfall | What Excel Does | What Shows Up in JSON | Prevention |
|---|---|---|---|
| Dates | Formats based on locale | Ambiguous date strings | Format as YYYY-MM-DD before export |
| Zip codes | Strips leading zeros | "7302" instead of "07302" | Format column as Text first |
| Long numbers | Scientific notation | "4.11111E+15" | Format column as Text first |
| Merged cells | Only top-left cell has value | Missing fields in JSON objects | Unmerge and fill before export |
| Currency symbols | Includes $ or other symbol | "$45.99" as string, not 45.99 | Remove currency formatting, keep number |
| Boolean values | TRUE/FALSE in cells | "TRUE" as string | Converter may or may not cast to boolean |
| Newlines in cells | Alt+Enter creates line break | Multi-line JSON values | Acceptable — just be aware of it |
When you save as CSV, Excel only exports the currently active sheet. For workbooks with multiple sheets:
sheet1.csvsheet2.csvThis is a manual process. For automated multi-sheet conversion, you need Python with the openpyxl library — but for most users, the manual approach handles it in a few minutes.
Save as CSV, paste here, get JSON — the 2-step method for Excel users.
Open CSV to JSON Converter