Forever free! Now you can create links for your Excel Compare and Text Compare results to share or embed on your site.

Excel to JSON Converter

Turn an Excel sheet into JSON in your browser — each row becomes an object, the first row becomes the keys.

100% FreeBrowser-OnlyNo UploadInstantPrivate

Turn a Sheet Into a JSON Array in Three Steps

Drop an .xlsx or .xls file in, let the browser read each row into an object, then download the JSON. No install, no account, no upload.

1

Upload Your Excel File

Drop in an .xlsx (Excel 2007 or newer) or an .xls (Excel 97–2003) file, or click to browse. The sheet is read inside your browser, so nothing is transmitted — the file stays local. This is step one of the Excel to JSON conversion; files are capped at 100 MB and a large sheet is bounded by your device's memory.

2

Rows Become JSON Objects

Each row turns into an object, and the header row becomes the keys. The first row is read as the key names by default, so a column called email becomes the email field on every object. The result panel shows the sheet count and total rows once parsing finishes.

3

Download Your .json File

Export a formatted .json file that opens in any editor — VS Code, Vim, a browser devtools window. Want it back as a spreadsheet later? You can convert JSON back into Excel through the same browser-only flow, with no install and no account in either direction.

Six Guarantees This Excel to JSON Converter Makes

Six promises about what the JSON output will look like and how the file is handled — every one runs in your browser, with no signup and no upload.

No Server Sees Your File

The workbook is opened, parsed cell by cell, and rebuilt as JSON entirely on your machine — the network is cut out of the conversion rather than quietly included in it. Nothing leaves your device to be processed, scanned, or held. The same machine-local rule applies when you bring CSV data into Excel on this site.

Headers Become Keys, Rows Become Objects

The first row of your sheet becomes the JSON keys, and every row after it becomes one object in the array. A column named price lands as the price field on each object. The Excel to JSON output is an array of objects — the exact shape APIs and databases expect.

Reads Both .xlsx and .xls

The newer .xlsx (Office Open XML, the Excel default since 2007) and the legacy .xls (Excel 97–2003) both parse cleanly. Many converters default to .xlsx only and choke on older files; this one reads either. Either way the JSON output is the same — a UTF-8 array of objects.

Cell Types Survive the Trip to JSON

A spreadsheet cell already knows whether it holds a number, a date, a boolean, or nothing — and the JSON carries that knowledge through. Numbers land as numbers, dates as ISO-style strings a script can parse, and boolean cells as true / false rather than the text "TRUE". A genuinely empty cell becomes null, so the gap is visible in the data instead of masquerading as an empty string.

100 MB Cap, No Quota, No Signup

Convert files up to 100 MB with no daily limit and no account — larger than Monkt's 5 MB / 3-file free tier, ConversionTools' 10 MB / 5-conversions-per-day limit, or TableConvert's 10 MB cap. The full set of free browser-based Excel tools runs on the same rule: paste or upload, convert, done.

Runs On Any Modern Browser, Excel or Not

Windows, macOS, Linux, or a phone — any browser with JavaScript does the work, and Excel does not need to be installed. The output is plain JSON text, so it opens in VS Code, Vim, a browser devtools window, or any editor that speaks UTF-8. Convert Excel to JSON online without installing a thing.

How a Spreadsheet Grid Becomes a JSON Tree

JSON and Excel hold the same data, but they disagree on shape. Excel is a grid — rows and columns built for a person to read, filter, and sort. JSON is a tree of nested objects and arrays, the format APIs and databases return, defined by two aligned standards — most notably the JSON Data Interchange Format (RFC 8259) (IETF STD 90, December 2017). Converting Excel to JSON moves data out of a grid a person reads into a structure a program can consume: one row becomes one object, the header row becomes the keys, the sheet becomes an array.

Why the Output Parses the Same Everywhere

Two independent standards pin down JSON's grammar so a value written in one tool is read the same way by any other — the JSON Data Interchange Format (RFC 8259) from the IETF and ECMA-404, both settled in December 2017. One rule from RFC 8259 is worth knowing on the way in: JSON text exchanged between systems MUST be UTF-8, which is the encoding the converter emits. The .xlsx that holds your input is defined by the Office Open XML file formats (ECMA-376), 5th edition December 2021 — a ZIP of XML parts that has been Excel's native save format since 2007. A single worksheet can carry up to 1,048,576 rows by 16,384 columns per Microsoft's limits, so an array from a full sheet can be large.

See It Convert — an Excel Sheet to a JSON Array

Excel input
idnameemailplanseats
1042Alice Chenalice@example.comenterprise34
1043Marcus Leemarcus@example.comstarter5
JSON output
[
  {
    "id": 1042,
    "name": "Alice Chen",
    "email": "alice@example.com",
    "plan": "enterprise",
    "seats": 34
  },
  {
    "id": 1043,
    "name": "Marcus Lee",
    "email": "marcus@example.com",
    "plan": "starter",
    "seats": 5
  }
]

The example shows the rule in action: the header row (id, name, email, plan, seats) becomes the JSON keys, and each data row becomes one object in the array. Numbers stay typed, text stays text, and empty cells become null. A sheet with multiple columns produces an object per row — the structure a REST API, a database seed, or a config file expects. That is what an Excel to JSON export hands you: typed, keyed rows, ready for code.

How Each Part of Your Sheet Maps to JSON

In your sheetJSON
Header rowFirst row of cellsThe object keys
A data rowCells across one rowOne object in the array
The whole sheetA grid of rows × columnsAn array of objects
A number cellNumeric valueA JSON number
An empty cellBlank cellnull
A date cellDate-formatted cellAn ISO-style string

Mapping is per sheet. The row and column ceiling comes from Excel's official worksheet specifications; the older .xls (Excel 97–2003) tops out at 65,536 rows, so files exported from legacy systems feed in a smaller array.

Where an Excel to JSON Array Lands in Your Stack

Five real reasons a spreadsheet lands in someone's pipeline and needs to become JSON — and why dropping the file here beats writing a script.

API Payload Prep

A product team keeps seed data, fixtures, or sample records in a spreadsheet — easy to edit, hard to feed an endpoint. Run the Excel to JSON conversion and the result is ready to POST: one object per row, the column headers as field names, the exact shape the API contract expects.

Database Seeds and Imports

A CSV or .xlsx holds rows that belong in Postgres, Mongo, or SQLite. JSON is the universal middle step — paste it into a migration script, a Mongo import, or an ORM seed file. The header-as-key output drops in as documents or parameterized inserts without a column-order rewrite.

Frontend and Static-Site Data

A marketing site, a docs portal, or a dashboard reads its content from a JSON file in the repo. Editors maintain it in Excel where it is comfortable; the build step needs JSON. An Excel to JSON pass once per change, commit the .json, ship. No Google Sheets sync, no headless CMS for a five-row table.

Config and Lookups From a Spreadsheet

Rate tables, region mappings, feature flags, pricing tiers — kept in a sheet because that is where the team edits them, but consumed by code as a JSON lookup. Convert the sheet and hand off the array. If the source lives as CSV instead, export the Excel data to CSV first, then bring it back through the same browser flow.

Data-Pipeline Handoff and Cleanup

A spreadsheet is the handoff format between teams that do not share a database. Convert it to JSON so a downstream script — Python, Node, a dbt model — can read typed fields instead of parsing cell strings. Clean the source first: compare two columns in Excel to dedupe keys before the rows become JSON objects, so the array does not carry duplicates into the pipeline.

No Server Ever Holds Your Spreadsheet

There are two ways to turn a spreadsheet into JSON: hand the file to a server that reads and returns it, or read the sheet inside your own browser. This tool takes the second path — the file is parsed, row by row, and rebuilt as JSON on your device, so no copy of it is ever made anywhere else. The hosted converters all take the first path and tell you how long they keep the result: ConversionTools is candid that files are <em>"processed on our servers · files auto-deleted in 24h,"</em> while Monkt holds on much longer, with documents <em>"automatically deleted after 30 days unless you specify otherwise."</em> A 24-hour window and a 30-day one differ in degree, not in kind — in both cases the spreadsheet sat on someone else's disk first. Here it never does.

Shut the browser tab and the JSON vanishes with it — there was no second copy to outlive the session. No account, no email, no daily quota to sign up for. That is the real point for customer lists, pricing sheets, or anything under an NDA: the protection is not a promise to delete, it is that the upload never took place. A file up to 100 MB is welcome; beyond that, the ceiling is your own machine's memory. The same no-upload rule runs through every Excel to JSON conversion here, and the rest of <a href="/" style="color:#20A884" className="underline decoration-dotted underline-offset-4 hover:decoration-solid">the full Excel tools suite</a>.

Converting Excel to JSON — Common Questions

Upload your .xlsx or .xls file into the converter and it builds the JSON in your browser — no signup, no upload, no install. The first row becomes the keys, every row after it becomes an object, and the whole sheet becomes a JSON array. Click download for a .json file. It is free, with no daily quota.
The header row becomes the JSON keys. A column named email turns into the email field on every object in the array, and each data row becomes one object holding those fields. This "headers as keys" shape is the default — the exact structure most APIs and databases expect, with no manual mapping.
Yes — that is the default behavior, not an option you toggle. The converter reads the first row of your sheet as the key names and builds each subsequent row into an object using those keys. Rename a header cell in Excel before you upload, and the JSON field renames with it. Empty header cells are the one case to avoid, since a key needs a name.
The output is an array of objects — one object per data row, each object keyed by the column headers. A three-row sheet with columns id and name produces [{"id":1,"name":"Alice"},{"id":2,"name":"Bob"},{"id":3,"name":"Cara"}]. That is the structure a REST endpoint, a Mongo insert, or a JavaScript .map() consumes directly.
Yes, because nothing is uploaded. The spreadsheet is read and written as JSON in your browser. Most "secure" online converters (ConversionTools, Monkt, Aspose) upload your file and promise to delete it later — ConversionTools within 24 hours, Monkt within 30 days. Here there is nothing to delete, because the upload never happens.
Both .xlsx (Office Open XML, the Excel default since 2007, defined by ECMA-376) and the older .xls (Excel 97–2003) parse cleanly. The JSON output is identical for either source — a UTF-8 array of objects. Many converters only accept .xlsx and reject legacy .xls files outright.
.xlsx is the modern format — a ZIP archive of XML, native since Excel 2007, with up to 1,048,576 rows by 16,384 columns per sheet. .xls is the legacy binary format (Excel 97–2003), which caps at 65,536 rows. Both convert to the same JSON shape; .xls simply holds less data per sheet.
Each non-empty sheet is read in turn, its rows turned into an array of objects keyed by that sheet's header row. A single-sheet workbook outputs a clean JSON array — the shape most APIs expect. A multi-sheet workbook outputs an object keyed by sheet name, so { "Orders": [...], "Customers": [...] } keeps each sheet's data separate and labelled. Empty sheets are skipped.
Uploaded files are capped at 100 MB, with no daily quota and no signup — larger than Monkt's 5 MB / 3-file free tier or ConversionTools' 10 MB / 5-conversions-per-day limit. Because the conversion runs in the browser, real-world speed depends on your device, and the worksheet itself tops out at 1,048,576 rows by 16,384 columns. For very large workbooks, split the sheets or convert one at a time.
Numbers stay numeric and dates come through as ISO-style strings a script can parse. Boolean cells render as true / false, not the text "TRUE". Empty cells become null, so a missing value is explicit rather than silently an empty string. The output is typed JSON, not a sheet of text.
Yes — that is how this converter works by default. The file is read by your browser using a local parser; it is never sent to a server, never stored, and never queued for later deletion. If you have ever pasted a customer list into a "free" converter and wondered where it went, this is the opposite model. The same no-upload rule applies when you convert JSON back into Excel.
The best tool is the one that does the conversion correctly and does not take a copy of your data. This converter reads .xlsx and .xls in your browser, turns headers into keys and rows into objects, and outputs a real .json file — free, no signup, capped at 100 MB. For the reverse direction, the same site converts JSON back into an Excel workbook under the same rules.