Skip to content

Excel XLSX to JSON converter

XLSX to JSON runs through our table engine, returning an array of objects keyed by the selected sheet's header row.

  • Converted with Table engine · nothing stored
  • Free: 5 conversions a day · 5 MB each
  • Higher limits →

From real runs

What you get — and what changes

  • Header row Changed

    Column labels from the header row become JSON object keys; blank or duplicate headers are normalized so records stay addressable.

  • Data rows Kept

    Each non-empty worksheet row becomes one object in the output array.

  • Trailing blank rows Changed

    Empty trailing rows are dropped so accidental formatting far below the table does not become empty JSON objects.

  • Dates Changed

    Excel date cells are emitted as ISO strings; cells that were text remain text.

  • Multiple sheets Changed

    The sheet option selects one worksheet; multiple sheets are not combined into a single JSON file automatically.

  • Merged cells Changed

    Only the top-left value of a merged range is available, which can create empty keys or cells around merged headers.

  • Formatting Lost

    Colors, filters, comments, formulas, and chart objects are not represented in JSON records.

Sample conversions

Customer sheet

Input
Workbook Customers: name | zip | signup_date, row: Lee | text 02134 | date cell 2026-09-10.
Output
JSON: [{"name":"Lee","zip":"02134","signup_date":"2026-09-10T00:00:00.000Z"}]. The ZIP stays text because the cell was text.

Merged report title

Input
Sheet has A1:D1 merged as "Sales Export", row 2 contains sku,region,total,paid.
Output
Choose headerRowIndex 2; otherwise "Sales Export" becomes the first header and nearby merged cells become blanks.

Workbook with lookup tabs

Input
Workbook sheets: README, Products, Regions. Products has id,name,price rows.
Output
Pick Products with the sheet option to get product objects instead of README text rows.

A real Excel XLSX → JSON run

We converted our Excel XLSX sample (17 KB) with Table engine on 2026-09-11. It took 1 ms and produced a 558 B JSON file, 97% smaller than the input. The engine raised 2 warnings, listed below.

Input · sample.xlsx · 17 KB

Workbook with 2 sheets (Pipeline, Notes); first sheet 5 rows, 25 cells, 0 formulas

Sheets
2
Sheet names
Pipeline, Notes
Rows
5
Cells
25
Formulas
0
frozenHeader
no

Output · sample.json · 558 B

Array of 4 objects; keys: company, stage, arr, owner, close_date

Records
4
Keys
company, stage, arr, owner, close_date
  • Workbook contains multiple sheets; each sheet was exposed as its own IR table.
  • Only the first table was written to this single-table format.

First lines of the output

json
[
  {
    "company": "Northwind Traders",
    "stage": "Proposal",
    "arr": 48000,
    "owner": "R. Ayers",
    "close_date": "2026-10-14"
  },
  {
    "company": "Contoso Ltd",
    "stage": "Negotiation",
    "arr": 120000,
    "owner": "P. Ng",
    "close_date": "2026-09-30"
  },
  {
    "company": "Fabrikam",
    "stage": "Qualified",
…

Options and when to change them

sheet
Select the data worksheet when the first sheet is a cover page, pivot, or instructions tab.
headerRowIndex
Move the header row below report titles or merged heading blocks before converting to object keys.
dateHandling
Use ISO strings for API payloads; preserve text when the displayed spreadsheet date must remain unchanged.

Do it yourself

pandas

bash
python - <<'PY'
import pandas as pd
pd.read_excel("in.xlsx", sheet_name=0).to_json("out.json", orient="records", indent=2, date_format="iso")
PY

Set sheet_name and header explicitly for workbooks with title rows or lookup tabs.

csvkit plus jq

bash
in2csv --sheet Products in.xlsx > products.csv
python - <<'PY'
import pandas as pd
pd.read_csv("products.csv").to_json("products.json", orient="records", indent=2)
PY

The intermediate CSV step loses workbook-only features just like the conversion.

Excel XLSX to JSON by API or MCP

The HTTP API and the MCP server run the exact engine this page uses (Table engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=xlsx&to=json.

curl
curl -X POST https://filetypeconverters.com/api/v1/convert \
  -H "Authorization: Bearer $FTC_API_KEY" \
  -F "file=@input.xlsx" -F "from=xlsx" -F "to=json" \
  -F 'options={"sheet":""}' \
  --output output.json

Options this engine accepts for Excel XLSX → JSON

KeyApplies toTypeDefault
sheetReading Excel XLSXstring
headerRowIndexReading Excel XLSXnumber0
dateHandlingReading Excel XLSXdate · stringdate
delimiterWriting JSONstring,
newlineWriting JSON ·
sheetNameWriting JSONstring
dialectWriting JSONpostgres · mysql · sqlitepostgres
tableNameWriting JSONstringdata
createTableWriting JSONbooleantrue
API reference

When this is the wrong conversion

  • Do not use XLSX to JSON when workbook layout, formulas, or visual formatting must be preserved.
  • For multi-sheet datasets that need relationships, export sheets separately and model the joins explicitly.
  • If you need compact analytical storage with types, convert XLSX to Parquet rather than JSON.

Excel XLSX to JSON questions

What JSON shape does XLSX to JSON create?

It creates an array of objects. Each row becomes one object and the selected header row supplies the object keys.

Can I convert a sheet other than the first one?

Yes. Use the sheet option to pick the worksheet you want before converting.

What happens to empty rows at the bottom?

Empty trailing rows are dropped so formatting artifacts below the data do not become empty JSON objects.