What this tool does
Excel-to-JSON turns spreadsheet data into program-friendly key-value structures: the first row becomes field names and each data row becomes an object. It is the first step for building mock data, piping an ops sheet into a script, or drafting API examples.
Numeric cells keep their number type (price 5.5 stays 5.5, not "5.5"), and empty cells are padded with empty strings so fields never disappear. Pick the Nth sheet and choose between two output shapes. Parsing runs entirely in your browser.
How to use
- Pick a sheet The first sheet is converted by default; change the sheet index for multi-sheet files (1-based).
- Choose the output shape "Records" feeds programs directly ([{id:1},{id:2}]); "Rows" keeps the raw 2D array for further processing.
- Download or copy Output is 2-space-indented and ready to commit; Chinese stays as-is (no \u escapes), fully readable.
FAQ
Does legacy .xls work?
Binary .xls (BIFF) is not supported. Save it as .xlsx in Excel/WPS first; this tool handles Open XML only.
How are merged cells handled?
Only the top-left cell of a merged range holds a value; the rest read as empty strings. Flatten merged headers before converting.
What happens to dates?
Depends on the source cell: real date cells come out as ISO strings or serial numbers (SheetJS default); text dates stay as-is. For strict date handling, format cells as text or ISO in Excel first.
Can it handle hundreds of thousands of rows?
Up to 50MB per file — hundreds of thousands of rows work, but the JSON output doubles memory. For million-row sheets use csv-to-json or scripts.
Do formula cells output computed values?
Cached results (values saved by Excel) are output — formulas are neither recalculated nor parsed.
Is my file uploaded?
No. Parsing runs in a browser Worker; the file never leaves your device.
Limits
.xlsx (Open XML) only; no legacy .xls and no password-protected files.
One sheet per conversion; switch the index for other sheets.
Dates and formulas follow SheetJS defaults; no custom formatting. Up to 50MB per file.