Purplelink
← All tools

Free web tool

XLSX to JSON

Convert Excel workbooks (.xlsx) to JSON, or to JSON Lines, one sheet or all of them. Each cell keeps the type Excel gave it: numbers stay numbers, dates become ISO dates, and text stays exactly as typed. The workbook is read on your device. Nothing is uploaded.

Options
Save as
Sheets

Bytes of your files sent anywhere: 0

Files are read and converted in this tab, in a background worker. The only requests the page makes are for its own scripts. Your files are never sent anywhere.

How it works

An .xlsx file is a zip of XML parts. The page opens it with JSZip, served from this site, and reads the sheets in a background worker in this tab, the same way XLSX to CSV does.

Unlike a CSV, a workbook records each cell's type, so nothing is guessed: a number cell becomes a JSON number written as Excel stored it, a TRUE or FALSE cell a boolean, a date cell an ISO date such as 2026-11-03 or 2026-11-03T14:05:00, and text a string. Formulas give the result Excel saved with the file.

With All sheets, the JSON is one object with a key for each sheet, in tab order. With JSON Lines, each sheet becomes its own .jsonl file in a zip.

How to convert XLSX to JSON

  1. Pick JSON or JSON Lines. JSON gives one array, or one object for all sheets; JSON Lines gives one record per line.
  2. Pick the sheets. First sheet uses the first visible sheet; All sheets includes every sheet, hidden ones too.
  3. Add the workbooks. Drop the .xlsx files on the box, or click it to choose them.
  4. Download. Download each JSON file from its row, or use Download all as .zip.

Limits

Questions

Are my files uploaded?
No. The page reads each workbook with your browser and converts it in a background worker in this tab. There is no server step. The meter under the drop zone counts the bytes the page and its worker send while they work, so you can check this yourself. The only things the page downloads are its own scripts.
How are dates written?
As ISO 8601 strings: 2026-11-03 for a date, 2026-11-03T14:05:00 for a date and time, 14:05:00 for a time. JSON has no date type, and these strings parse in JavaScript, Python and every database.
What does All sheets give me?
With JSON, one object with a key per sheet, in tab order, each holding that sheet's rows. With JSON Lines, a zip with one .jsonl file per sheet. Hidden sheets are included, and the row names them.
Why is this better than saving as CSV first?
A CSV loses the cell types, so a converter has to guess which values are numbers. A workbook knows, so numbers, booleans, dates and text each come out as what they are.
Is it free?
Yes. There is no account, no watermark and no limit beyond the sizes above.

If this saves you time, you can leave a tip. It helps keep these tools free and online.