Skip to content

Convert Excel to JSON online

Convert XLSX and ODS worksheets into typed JSON — real numbers, booleans and ISO dates, header row options and one-click all-sheet export.

  • Runs in your browser
  • Files are never uploaded
  • Free, no account
Drop an Excel workbook hereThe file is parsed by your browser, never uploaded.XLSX, XLS, XLSM, XLSB, ODS, CSV · up to 200 MB each

How to convert an Excel sheet to JSON

  1. Drop the workbook — .xlsx, .xls, .xlsm, .xlsb, .ods or .csv.
  2. Pick the worksheet, or choose “All sheets” to get one JSON object keyed by sheet name.
  3. Choose where the keys come from: the first row, the column letters, or nothing at all if you want arrays of arrays.
  4. Set the date and type behaviour so the output matches what your API or database expects.
  5. Copy or download the .json.

Choosing an output shape

Keys come from Output Best for
The first row [{ "name": "Ada", "role": "engineer" }] API payloads, seed data, most imports
Column letters [{ "A": "Ada", "B": "engineer" }] Sheets with no header, or duplicated headers
No keys [["Ada", "engineer"]] Positional processing and matrix maths
All sheets { "Q1": [...], "Q2": [...] } Converting a whole workbook in one pass

How Excel dates become JSON

Excel has no date type. It stores a number — the count of days since 30 December 1899 — and attaches a display format. That is why a date pasted between workbooks sometimes turns into 45,000. This converter reads the format, recognises the cell as a date, and lets you decide how to write it:

Mode Example output Use when
ISO 8601 "2026-08-16T00:00:00.000Z" Feeding an API or a JS new Date()
Date only "2026-08-16" Calendar dates with no meaningful time
As displayed "16/08/2026" Reproducing a human-facing report
Serial number 46250 Round-tripping back into a spreadsheet

Header rows that are not quite clean

Real sheets have empty header cells and repeated labels. Both are handled without losing data: an empty header becomes column_3, and a repeat becomes total_2. If your headers use dot notation such as address.city, turn on “Expand dotted headers” and the flat row is rebuilt into a nested object.

Typed values, and when to switch them off

With typed values on you get real JSON numbers, true/false booleans and null for blanks — the shape a database or a schema validator expects. Switch it off when formatting carries meaning: a part number stored as 0042, a percentage you want as "12.5%", or an account reference longer than fifteen digits that would lose precision as a floating-point number.

Runs entirely on your device

The workbook is parsed by SheetJS inside this browser tab. No upload, no queue, no retention window — which is what makes it safe for payroll exports, patient data and anything else covered by an NDA.

Questions

Are numbers exported as numbers or strings?

As real JSON numbers when “Typed values” is on, along with true/false booleans and null for empty cells. Switch it off to receive exactly the text each cell displays.

How are Excel dates converted?

Excel stores dates as serial numbers. Choose ISO 8601, date-only, the displayed text, or the raw serial number — whichever your target system expects.

Can I convert every worksheet in one go?

Yes. Pick “All sheets” and you get a single JSON object keyed by worksheet name, with each value being that sheet’s array of records.

What if two columns share the same header?

The second one is suffixed automatically (name, name_2) so no data is lost, and empty headers become column_1, column_2 and so on.