Excel to JSON
Turn an Excel sheet into JSON; headers become keys, numbers stay numbers and dates are written as 2026-09-27
Your files stay with you. Conversion happens inside the browser; no file is ever uploaded to a server.
Did this tool do the job?
Thanks, your feedback came through.
How it works
You usually open this tool to hand a list kept in Excel to an app, a website or a developer: a product catalog, a store list with ZIP codes, a quiz question bank or a price list. Tap or click "Choose an Excel file", pick your file and press "Convert to JSON"; a .json file with the same name downloads. The first row is the header: a sheet headed "Product | Price | Stock" with 120 rows becomes a list of 120 objects shaped like {"Product": "Coffee", "Price": 12.5, "Stock": 40}. Numbers are written as their raw value whatever the cell format: a cell showing $1,250.50 is 1250.5 in the JSON. Date cells become 2026-09-27 by default, or 2026-09-27T14:30:00 when they carry a time; choose "As shown in Excel" to get 9/27/2026. A formula cell gives its result, not the formula. Empty cells become null and fully empty rows are skipped. A column with no header is named "column_3" and a second column with the same name becomes "Price_2", so no data overwrites other data. For a workbook with several sheets choose "All sheets": you get one file shaped like {"January": [...], "February": [...]}.
This tool is also known as excel to json, xlsx to json, excel to json converter, convert excel to json, spreadsheet to json.
What is JSON?
JSON is a text format programs use to exchange data, and people can read it too. An Excel row turns into an object in curly braces: {"Product": "Coffee", "Price": 12.5}. Square brackets mark a list, and a whole sheet is a list of such objects. Numbers, text, true/false and null are separate types in JSON; Excel formatting such as colors, the $ sign or the thousands separator does not carry over.
What is ISO 8601 date?
ISO 8601 is the international standard that writes dates as year-month-day: 2026-09-27, or 2026-09-27T14:30:00 with a time. It avoids the confusion of 09/10/2026, which is September 10 in the US and October 9 in most of Europe. Every programming language and database reads it directly, and sorting it alphabetically also sorts it by date, which is why it is the default here.
Should you convert Excel to JSON or to CSV?
CSV gives one sheet as plain text with no types: everything is text, and the program that reads it has to guess again which values are numbers or dates. JSON keeps the types: numbers stay numbers, text stays text and an empty cell comes through as null; several sheets fit in one file, and every web language reads it in a single line. Choose CSV to load the data into another spreadsheet or a database, and JSON to feed it to an app, an API or a web page.
Why dates come out as numbers or the wrong day
Excel stores a date as a serial number: 9/27/2026 is really 46292, a count of days since 1900, and only the cell format makes it look like a date. That is why simple converters write 46292 into the JSON. This tool checks each cell's format and turns date-formatted numbers into calendar dates.
The second trap is the time zone. Tools that turn the serial number into a JavaScript Date can shift it: on a computer set to US Eastern time, midnight can come out as 8:00 PM the day before, and September 27 becomes September 26. Here the date is built straight from its year, month and day parts, so the time zone never comes into play. A time-only cell (2:30 PM) is written as 14:30:00, and an elapsed-time cell formatted [h]:mm as a total such as 36:00:00.
- 46292 (date format) → "2026-09-27"
- 46292.6041… (date and time) → "2026-09-27T14:30:00"
- 0.5 (time format) → "12:00:00"
- number shown as $1,250.50 → 1250.5
Which structure and which date setting to pick
"Headers as keys" fits most uses: a website, a mobile app or an API reads each record by field name. "Row arrays" is for tables with no header row, for headers with spaces or symbols you do not want as keys, or for data you will process with your own code; in this structure the first row is written as an array too.
For dates, "ISO 8601" is the one format every program reads without guessing, and it sorts correctly: 2026-09-27 lands in the right order even when sorted as text. If a person will read the JSON or a page will show the dates as they are, choose "As shown in Excel"; Excel's built-in short date is then written in US style (9/27/2026), and custom date formats keep the pattern set in the cell. In merged cells the value sits only in the top-left cell; the others come through as null.
Frequently asked questions
How do I convert an Excel file to JSON?
Tap or click "Choose an Excel file" on this page, pick your file and press "Convert to JSON". The headers in the first row become keys and each row below becomes an object; the result downloads to your Downloads folder as a .json file with the same name.
Why does a date from Excel show up in JSON as a number like 46292?
Excel stores dates as the number of days since 1900 and only displays them as dates. This tool recognizes that the cell has a date format and turns the number into 2026-09-27. If the date was typed as text in the cell (with a leading apostrophe, for example), it comes through as text, unchanged.
Can I put several sheets into one JSON file?
Yes. Set "Which sheets to convert?" to "All sheets". The result is one object whose keys are the sheet names: {"January": [...], "February": [...]}. Empty sheets are written as empty lists, and the sheets keep their workbook order.
Is my file uploaded to a server?
No. The Excel file is opened inside your browser and the JSON is built there; neither the file, its name nor its contents are sent to any server. Password-protected workbooks cannot be opened; remove the password in Excel and try again.