Kit-Bin
Donate

Drop an Excel file here or click to browse

.xlsx, .xls, or .xlsm

Processed entirely in your browser. Never uploaded to a server.

This tool turns one sheet of an Excel workbook into a JSON array of objects, using the first row as the keys. Drop your file above, pick a sheet from the dropdown, then click convert.

What the output looks like

A sheet with the header row Name, Qty, Price and one data row Widget, 3, 2.5 becomes:

[
  {
    "Name": "Widget",
    "Qty": 3,
    "Price": 2.5
  }
]

Numeric cells become real numbers, booleans become true or false, and empty cells become empty strings so every object has the same keys.

What does not survive the conversion

  • Formulas are exported as their computed values. The formula text is not kept.
  • Formatting (fonts, colours, borders, conditional formatting) is dropped.
  • Merged cells are flattened. The value lands in the top-left cell of the range and the rest is empty.
  • Charts, images, pivot tables, and comments have no JSON equivalent and are not exported.
  • Sheet structure is not preserved. One run converts one sheet, not the whole workbook.
  • Dates are written as the spreadsheet displayed them, so a cell showing 03/04/2025 stays that ambiguous text. Reformat to YYYY-MM-DD in Excel first if that matters.

FAQ

What shape is the JSON I get back?
An array of objects. The first row of the sheet is treated as the header row, and its cell values become the keys on every object. Each following row becomes one object in the array. A sheet with 4 columns and 100 data rows gives you an array of 100 objects with 4 keys each.
Do formulas come through as formulas?
No, you get the computed value. A cell containing =B2*C2 that displays 7.50 becomes 7.5 in the JSON. JSON has no way to express a formula, and the formula text is not included. If a formula was never calculated by the spreadsheet app, that cell can come out blank.
Are numbers kept as numbers?
Yes. Unlike a CSV, where every value is text, a numeric cell in Excel becomes a real JSON number and a boolean cell becomes true or false. Text cells stay strings.
What happens to empty cells?
An empty cell becomes an empty string rather than being left out, so every object in the array has the same set of keys. That keeps the output predictable for code that iterates the array.
Can I convert more than one sheet at a time?
No. This tool converts one sheet per run, because a single JSON array maps to a single table. Pick the sheet you want from the dropdown, then convert again with a different sheet selected if you need more.
What about formatting, charts, and merged cells?
None of it is carried over. Cell colours, fonts, borders, charts, pivot tables, images, and comments have no JSON equivalent and are dropped. Merged cells are flattened, with the value in the top-left cell of the range and the rest empty. Dates are written as the spreadsheet displayed them, so check them if the exact format matters.
Does this work with the older .xls format, not just .xlsx?
Yes. The tool reads .xlsx, the older .xls binary format, and macro-enabled .xlsm files the same way. Macros in an .xlsm file are not run and are not carried over, only the cell values are read.
Is it really free, and is there a file size limit?
Free, with no sign-up and no cap on how many files you convert. There's no hard file size limit either, since the workbook is parsed in your browser tab rather than uploaded, but a very large workbook is limited by your device's memory rather than any rule this tool enforces.

Need flat rows instead of objects? Use Excel to CSV. Going the other way, start with JSON to CSV then CSV to Excel.

Want to tidy or check the result? Try the JSON formatter and validator, or read CSV vs JSON: Which One Do You Need?

Not sure CSV or JSON is the right export at all? Read Excel to CSV vs Excel to JSON: which export should you use?