Excel to JSON Converter
Drop an Excel workbook and get clean JSON in a second. Choose the sheet and the header row, decide how dates, empty cells and key names are written, and copy or download the result. Your spreadsheet is read on your device and never uploaded.
Sheet preview · click a row number to use that row as the header
How to use the Excel to JSON Converter
- Drop your Excel file (.xlsx, .xls, .xlsm, .xlsb, .ods or .csv) on the upload area, or load the sample workbook.
- Pick the sheet to convert, or All sheets to get one JSON object with a key per sheet.
- Set the header row. Click a row number in the preview when the column names are not on row 1.
- Choose the output: the JSON shape, value types, date format, empty-cell handling and key style.
- Copy the JSON or click Download .json.
Output shapes explained
Using a sheet with the header SKU | Price | In stock and one data row:
| Shape | Result | Best for |
|---|---|---|
| Array of objects | [{"SKU":"TS-01","Price":19.95,"In stock":true}] | APIs, JavaScript apps, MongoDB imports |
| Array of arrays | [["SKU","Price","In stock"],["TS-01",19.95,true]] | Charts, grids, compact storage |
| Object keyed by first column | {"TS-01":{"Price":19.95,"In stock":true}} | Lookups by ID, translation files, config |
| Object of column arrays | {"SKU":["TS-01"],"Price":[19.95],"In stock":[true]} | Plotting libraries, data science |
How Excel values become JSON
| Excel cell | JSON value |
|---|---|
Number 19.95 | 19.95 (rounded to 15 significant digits, like Excel shows it) |
| TRUE / FALSE | true / false |
| Date 15-Mar-2024 | "2024-03-15", 45366 (serial) or 1710460800000 (Unix ms) |
| Date and time | "2024-03-15T09:30:00" |
Text 00501 | "00501" (text cells stay text) |
Formula =B2*C2 | Its calculated result |
Error #DIV/0! | "#DIV/0!" |
| Empty cell | null, "" or no key |
Excel counts days from 1 January 1900 (serial number 1), and wrongly treats 1900 as a leap year for compatibility with Lotus 1-2-3, so serial 60 is the non-existent 29 February 1900. Workbooks created with the 1904 date system (old Mac Excel) are detected and converted correctly. Need the reverse? Use the JSON to Excel Converter.
Frequently asked questions
How do I convert an Excel file to JSON?
Drop the .xlsx file on the upload area. The first visible sheet is converted immediately: each row below the header becomes a JSON object whose keys are the header cells. Adjust the options if needed, then copy the JSON or download it as a .json file.
How are dates converted?
Excel stores dates as serial numbers formatted as dates. The converter reads each cell's number format and writes real dates as ISO 8601 text, for example 2024-03-15 or 2024-03-15T09:30:00. You can choose the raw Excel serial number or Unix milliseconds instead.
What if my headers are not on the first row?
Set Header row to the right row number, or simply click that row's number in the preview. Rows above the header are ignored. Set it to 0 if the sheet has no header; keys then become the column letters A, B, C.
Can I convert all sheets at once?
Yes. Choose All sheets in the Sheet list and the output is a single JSON object with one key per sheet name, each holding that sheet's rows.
Are formulas converted?
The converter outputs the last calculated value of each formula, which is what Excel stores in the file, not the formula text.
Does it support old .xls files?
Yes. Modern .xlsx and .xlsm files are read directly by the page. Legacy .xls, binary .xlsb and OpenDocument .ods files are read with the open-source SheetJS library, which is loaded automatically when needed.
Is my spreadsheet uploaded?
No. The file is opened and converted in your browser. Nothing is sent to a server, so it is safe for private or business data.