Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Excel to JSON Converter

Spreadsheet rows to clean, typed JSON — header row as keys, dates as ISO 8601.

Data No upload Works offline Free, no sign-up

Next steps

About the Excel to JSON Converter

Turn a sheet of an Excel workbook (XLSX, XLSM, XLSB, XLS), an OpenDocument spreadsheet or a Numbers file into JSON for an API, a script, a test fixture or a database import. By default each row becomes an object with the header row as keys; numbers and TRUE/FALSE stay typed, dates become ISO 8601 text such as 2026-09-28 or 2026-09-28T14:30:00, and headers like address.city are rebuilt as nested objects.

You can also write an array of row arrays, JSON Lines (one object per line), or every sheet at once as an object keyed by sheet name. Title rows above the header are detected and skipped, duplicate or empty headers get safe, unique keys, and empty columns without a header are left out. Large sheets are parsed by a background thread on your device; nothing is uploaded.

How to use it

  1. Choose a workbook or drop it on the box.
  2. Pick a sheet — or All sheets for one object keyed by sheet name — and the output shape: array of objects, array of arrays, or JSON Lines.
  3. Check the header row. It is detected automatically (titles and blank rows above it are skipped); untick Detect the header row to choose it yourself.
  4. Choose how values, dates and empty cells are written, and whether a.b headers become nested objects.
  5. Copy the JSON or Download it as a .json (or .jsonl) file.

Examples

A sheet with dotted headers
Input
id | name          | address.city | address.pin | joined     | vip
1  | Asha Kulkarni | Pune         | 411001      | 28/09/2026 | TRUE
Result
[
  {
    "id": 1,
    "name": "Asha Kulkarni",
    "address": {
      "city": "Pune",
      "pin": "411001"
    },
    "joined": "2026-09-28",
    "vip": true
  }
]

The PIN code was stored as text in the sheet, so it stays a string; “joined” is a date cell (shown as 28/09/2026), so it becomes ISO 8601.

Every sheet at once
Input
Workbook with sheets “Customers” and “Stock”
Result
{ "Customers": [ … ], "Stock": [ { "SKU": "A-1", "Qty": 5 } ] }

Common uses

  • Seeding a database, mock API or test suite from data a colleague keeps in Excel.
  • Turning a product, price or translation sheet into JSON for a website or an app.
  • Feeding spreadsheet rows to scripts and data pipelines as JSON Lines.
  • Inspecting how Excel stores dates, numbers and booleans behind their formatting.

How cells become JSON values

  • Numbers become JSON numbers (RFC 8259) with Excel’s 15-digit precision, so binary noise such as 0.30000000000000004 is written as 0.3. Numbers stored as text in the sheet (for example PIN codes) stay strings.
  • TRUE/FALSE become true/false; error cells such as #N/A become strings.
  • Dates and times become ISO 8601 text: 2026-09-28 for a date, 14:30:00 for a time and 2026-09-28T14:30:00 for both, without a time zone, because Excel stores none. You can choose Excel’s serial numbers or the displayed text instead.
  • Formulas contribute the result saved in the file.
  • Empty cells become null, are left out of the object, or become "" — your choice.

With As displayed (text), every value is the text Excel shows, formatting included (1,499.50, 28/09/2026).

Keys from the header row

Header cells become keys in column order — also numeric headers such as 2024, which a plain JavaScript object would move to the front. An empty header becomes column_C (from its column letter) and repeated headers get _2, _3, so no value is lost. With Nest dotted headers, address.city and address.pin become {"address": {"city": …, "pin": …}}; a header that clashes with a nested key (both address and address.city) is kept flat, and you are told which.

Limitations

  • Workbooks encrypted with a password to open cannot be read. Files up to 50 MB; very large sheets are limited to the first 3 million cells.
  • Formulas are not recalculated, and merged cells hold their value only in the top-left cell unless you choose to fill them.
  • Dates have no time zone in Excel, so none is added; convert to UTC in your own code if you need one.
  • The output box shows the first 400 KB of a very large result; Copy and Download always include everything.

Privacy

Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

Frequently asked questions

How do I convert an Excel file to an array of JSON objects?

Choose the file and keep Array of objects: the header row becomes the keys and every row below it becomes one object. Use Download to save it as a .json file.

Why is my date a string like "2026-09-28"?

JSON has no date type. ISO 8601 text is the standard way to write dates in JSON and is understood by JavaScript (new Date("2026-09-28")), Python, databases and most APIs. Choose Excel serial number if you need the raw Excel value (days since 1900).

Can I convert all sheets at once?

Yes. Choose All sheets in the sheet list: the output is one object whose keys are the sheet names and whose values are the arrays of rows of each sheet.

My first rows contain a report title. Will they become keys?

No — the header row is detected, and titles or blank rows above it are skipped. The detected row is shown with the result; untick Detect the header row to pick a different one.

Is my spreadsheet uploaded?

No. The file is read and converted in your browser, in a background thread of this page; nothing is sent to a server.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.