AnyFormat

00 XLSX → JSON

XLSX to JSON

Header row becomes keys. All sheets in one object, if you want.

Drop files or a folder here

or choose from your device · paste with ⌘V / Ctrl+V

.xlsx .xlsm .xls

03Options 4

All-sheets produces an object keyed by sheet name rather than a flat list.

Off omits the key entirely when a cell is blank, rather than writing an empty string.

  • No upload The conversion runs in this tab. Your file never travels — not to us, and not to the advertising.
  • No sign-up, no email, no daily cap There is no account system to sign up to.
  • No size limit we invented Only your device's memory — about ~2 GB on a desktop browser, ~400 MB on a phone.
  • Turn your Wi-Fi off and convert anyway The conversion needs nothing but this page. Ads will not load without a connection; your file will still convert. That is the whole claim, and it takes five seconds to check.

Drop a workbook and get JSON, with the first row as keys. Useful for turning a hand-maintained spreadsheet into seed data or a config file without writing a script.

Multiple sheets

Set Sheets to All sheets and the output is an object keyed by sheet name, each holding that sheet's rows. This is the one output format where all-sheets is genuinely useful — CSV cannot represent it, JSON can.

Types and blank cells

Numeric cells become JSON numbers, booleans become booleans, and dates become ISO 8601 strings. A blank cell becomes an empty string by default so every record has the same keys; turn Keep empty cells off and the key is omitted instead, which produces smaller JSON and is what most APIs expect.

Dates arrive as dates, not as 45000

Excel stores a date as the number of days since 1900, so a cell reading 2026-03-14 is really 46095. Read naively that is what lands in the JSON, which is the single most common surprise in spreadsheet conversion. Dates are detected from the cell format and written as ISO 8601 strings instead. The 1900 leap-year bug that Excel deliberately keeps for compatibility with Lotus is accounted for, which matters only for dates before March 1900 but matters absolutely there.

Formulas arrive as whatever was last calculated

A cell holding =SUM(B2:B40) stores two things: the formula and the value Excel worked out the last time it recalculated. Only the value can cross into JSON, since JSON has no formulas. Usually that is exactly right. It goes wrong when a sheet was generated by a tool that wrote formulas without ever evaluating them, in which case the cached value is zero or missing and the export looks empty for no visible reason. Opening the file in a spreadsheet and saving it once populates the cache and fixes it.

Other names for this

Also searched as “excel to json”, “spreadsheet to json”.

Questions

How are dates represented?
As ISO 8601 strings (2026-08-16). Excel stores them as day counts, which would be meaningless in JSON.
Can I get every sheet at once?
Yes — switch “Sheets” to “All sheets”. The result is an object keyed by sheet name.
Is my data uploaded anywhere?
No. The conversion runs as JavaScript inside this tab. Open your browser's Network panel and convert something — you will see no request carrying your data, because there is no server to send it to. You can also turn your Wi-Fi off and convert anyway.