SmartQueryTools

Convert Excel to JSON Online

Convert Excel files to JSON format directly in your browser. No upload required — your data never leaves your device.

About converting Excel to JSON

Excel to JSON is common when a spreadsheet is the editing tool for data that ends up in code. Product catalogues, translation tables, store locators and lookup lists are often kept in Excel by non-developers, then converted to JSON for a web app, a headless CMS, a static site generator or a bulk insert into MongoDB or Firestore.

The output is one JSON array. Each row of the first sheet becomes an object, and the header row supplies the keys. Header text is used as-is, so a header like "Unit Price (USD)" becomes a key with spaces and brackets. Rename columns first if your code expects keys like unit_price.

Values follow what the sheet displays. Plain numbers become JSON numbers, TRUE and FALSE become JSON booleans, and empty cells become null. Formatted numbers such as "$1,200.46" or "25%" come out as strings. JSON has no date type, so dates are strings. Real date cells are written in ISO form, so a cell showing 3/2/26 gives "2026-03-02". Merged cells produce null in every cell except the first, which often matters for grouped layouts where a category name is merged down several rows.

Not sure which format you need? Read the Excel vs JSON comparison.

Worked example

A small orders export with an ID, a customer name, a date, an amount (one missing) and a true/false flag, converted with the default settings.

Input (Excel)

Excel workbook, first sheet (Sheet1)

order_idcustomerorder_dateamountshipped
1001Acme Ltd2026-03-02249.5true
1002Brightside Co2026-03-021200false
1003Acme Ltd2026-03-0589.99true
1004Northwind2026-03-07NULLfalse

Output (JSON)

[
  {
    "order_id": 1001,
    "customer": "Acme Ltd",
    "order_date": "2026-03-02",
    "amount": 249.5,
    "shipped": true
  },
  {
    "order_id": 1002,
    "customer": "Brightside Co",
    "order_date": "2026-03-02",
    "amount": 1200,
    "shipped": false
  },
  {
    "order_id": 1003,
    "customer": "Acme Ltd",
    "order_date": "2026-03-05",
    "amount": 89.99,
    "shipped": true
  },
  {
    "order_id": 1004,
    "customer": "Northwind",
    "order_date": "2026-03-07",
    "amount": null,
    "shipped": false
  }
]

What changes when you convert Excel to JSON

  • The output is a single array of objects, pretty-printed with two-space indentation.
  • Each column header becomes an object key in every record, in column order.
  • order_id and amount are JSON numbers, shipped is a JSON boolean, and order_date is a string.
  • The empty amount cell for order 1004 becomes "amount": null rather than being left out.
  • Every row has the same keys, so the result is flat. Nesting has to be built later, for example in the SQL Query tool.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Frequently Asked Questions

Why is a number in my JSON wrapped in quotes?

The cell has a number format that adds text, such as a currency symbol, thousands separator or percent sign, so the converter sees a string. Switch the column to General in Excel, or leave it and convert the value in your code.

Can I get a JSON object keyed by ID instead of an array?

No, the converter always writes an array of row objects. Most languages can turn that into a keyed map in one line, for example Object.fromEntries(rows.map(r => [r.id, r])) in JavaScript.

How do I fill values from merged cells?

Unmerge the cells in Excel and use Go To Special, Blanks, type = and the cell above, then press Ctrl+Enter to fill every blank at once. Do this before converting. The Fill Nulls tool only fills blanks with one fixed value, not with the value from the row above.

What is JSON format?

JSON (JavaScript Object Notation) is a lightweight, human-readable format that supports nested structures, making it ideal for APIs and document-oriented data.

Related Tools