Home Excel to JSON

Excel to JSON converter

Open an Excel workbook and get one JSON object per row, keyed by the header row. The file is read in this tab and never uploaded, and every value keeps the type Excel stored it with.

Other languages:TürkçeDeutsch中文हिन्दीРусский

From cells to typed values

CSV loses types — every value is text — so going from Excel to JSON through CSV means guessing them back, badly. Reading the workbook directly does not have to guess: Excel already stores what each cell is, and the JSON follows it.

Excel cellJSON value
A number, 39.90 displayed39.9 — the number Excel holds, to its 15 significant digits
Text 02134"02134" — text stays a string, zeros and all
TRUE / FALSEtrue / false
An empty cellnull
A date, 14/11/2023 displayed"2023-11-14" — ISO 8601, read from the cell's date format
A formulaits last calculated value
An error, #N/A"#N/A"

A number is the number Excel holds, not the text it displays: a cell showing 39.90 because of a two-decimal format holds 39.9, and that is what the JSON says. If the display text matters — a product code typed into a number-formatted cell, say — format that column as Text in Excel before converting.

Keys from the header row

With First row is the header on, each header cell becomes the key for its column. A blank header becomes col_3 (by position), and a repeated header gets a suffix — name, name_2 — so no column silently overwrites another in the same object. Turn the option off and every row becomes a record keyed col_1, col_2 and so on, header row included.

Every object has every key, in column order. A cell that is empty in Excel is null rather than a missing key, so code reading the array never has to check whether a property exists — only whether it has a value.

Reading the workbook

The workbook is read exactly as on the Excel to CSV page: any sheet, hidden ones included; shared, inline and rich text; both of Excel's date systems; formulas as their saved values. Old .xls, password-protected and .ods files are refused with a message saying how to convert them.

What to do with the JSON

Paste it into the JSON to TypeScript, Zod or Pydantic generator for a type that describes every row, or into the JSON to SQL converter for a table and its INSERT statements. Download saves it as a .json file named after the workbook, and after the sheet when there are several.

Common questions

How do I convert an Excel sheet to JSON?

Open the .xlsx file with Open file or drop it on the tool, pick the sheet, and copy or download the JSON. With First row is the header on, each row becomes an object keyed by the column headers.

Are numbers and dates typed correctly?

Yes. Numbers become JSON numbers, TRUE and FALSE become booleans, empty cells become null, and cells with a date format become ISO 8601 date strings such as "2023-11-14". Text cells stay strings, so leading zeros survive.

What if two columns have the same header?

The second gets a suffix — name and name_2 — so neither column overwrites the other. A blank header is named after its position, such as col_3.

Is my workbook uploaded?

No. It is unzipped and read in your browser, so the data never leaves your machine.

Can I convert every sheet at once?

One sheet at a time: pick each from the Sheet menu and download it. Sheets usually have different columns, and one array of mixed records is rarely what the next step wants.

Last updated