Excel to JSON
Turn a spreadsheet into structured JSON (first row as keys).
How to use the Excel to JSON
- Select your Excel or CSV file.
- Click Convert to JSON.
- Download a JSON array of row objects.
About the Excel to JSON
This tool reads the active sheet of an Excel workbook or a CSV, treats the first row as field names, and emits a pretty-printed JSON array in which every following row becomes an object keyed by those names. Completely empty rows are dropped, and a column whose header cell is blank is still included — it just gets an automatic key such as column_3 so the data is not silently lost.
It is aimed at the moment someone hands you a spreadsheet and you need it as seed data, a test fixture or an API payload. If the target is a database import or a tool that just wants a flat file, Excel to CSV is the simpler answer; CSV to Excel handles the reverse trip.
Two honest catches. Duplicate header names collide — if two columns are both called Name, only the rightmost survives in each object, because the keys overwrite one another. And the structure is strictly flat: one sheet, one array, no nesting and no relationships, since only the active sheet is read. Values keep their spreadsheet types, so numbers come out as JSON numbers and empty cells as null. Your file is uploaded to our server, processed under a random name in a folder blocked from web access, and deleted when the request ends. The limit is 20 MB.
Frequently asked questions
What if my first row is not headers?
Then your first row of real data is consumed as the keys, which is rarely what you want. Add a header row before uploading.
What happens to duplicate column names?
The last one wins. Each row object is built by assigning keys in order, so a repeated header overwrites the earlier value — rename the columns if you need to keep both.
How are blank cells and blank rows handled?
Rows that are entirely empty are skipped. Empty cells inside a kept row become null in the JSON.
Can I get nested JSON?
No. The output is always a flat array of flat objects, one per row. Reshaping into nested structures is a job for a script afterwards.
Are multiple sheets supported?
No — only the active sheet is read. Convert each sheet separately if you need them all.

