Free tool · XLSX + CSV → JSON · Client-side · No sign-up

Excel to JSON Converter

Upload a .xlsx or .csv file and get back valid JSON: choose array-of-objects (keyed by your header row) or array-of-arrays, optionally split multiple sheets into one object per sheet, and optionally unflatten dotted headers like address.city into nested objects — all without the file leaving your browser.

Nothing leaves your browser — reading, conversion, and preview all run locally in JavaScript.

Why this Excel to JSON converter processes files in your browser

Search "excel to json" and the results — tableconvert.com, codebeautify.org, dataformatterpro.com, beautifytools.com, dataconverter.io, jsonlove.com — are almost all the same shape: a single mono-page tool that uploads your spreadsheet to a server, converts it, and hands you JSON back. That's fine for a public sample file. It's not fine for a customer list, a payroll export, or anything else you wouldn't want sitting in an unfamiliar server's logs.

This tool never uploads your file anywhere. Reading the .xlsx or .csv, building the JSON structure, and rendering the preview all happen with JavaScript running in your own browser tab. Disconnect from the internet after the page loads and it still works — there's no round trip to check.

How it works

Drop a .xlsx or .csv file onto the page (or choose one). The first row of each sheet is treated as the header row; everything below becomes data. You get a live JSON preview immediately, so you can catch a wrong sheet or a header mismatch before downloading anything.

Two output structures are available. "Array of objects" gives you the shape most APIs and scripts expect — one object per row, keyed by the header row. "Array of arrays" keeps the header row as the first element, which some import scripts prefer over objects. A separate typing option auto-detects numbers, ISO dates, and booleans in each column so exported values are real JSON types (42, not "42") rather than everything coming through as a string.

If your workbook has more than one sheet, turn on multi-sheet mode and the export becomes a single object keyed by sheet name — { "Sheet1": [...], "Sheet2": [...] } — instead of silently dropping every sheet but the first, which is what most of the free converters we checked do. This is the one gap dataformatterpro.com already covers among the competing free tools, and the reason we built it in from the start.

What's included

A dot-notation "unnest" option: if your header row already has columns named address.city and address.zip (common in flat CSV exports of nested data), turning this on rebuilds the nested address: { city, zip } object instead of leaving two flat keys — the reverse of what our JSON to Excel converter does when flattening JSON into spreadsheet columns.

Both .json (pretty-printed, indented) and .jsonl (JSON Lines — one compact record per line) exports are available for single-sheet results, which is the format many log-ingestion and bulk-import tools expect instead of one big array. A one-click Copy button puts the same JSON on your clipboard without a download at all.

Limitations, and when to reach for something else

This tool reads the first row of each sheet as headers — spreadsheets with a title row above the real header, or a merged-cell header block, will need that row deleted first. Deeply irregular data (cells that mix single values and multi-row blocks in the same column) doesn't have one "correct" JSON shape, so it's flattened as literally as possible rather than guessed at.

If you're going the other direction — you already have JSON and want a spreadsheet — use the JSON to Excel converter linked below. If you need to merge several spreadsheets into one before converting, run them through Merge Excel Files first.

Beyond one-off conversions

Need a spreadsheet built to run your business, not just hold data?

These converters get your data into a spreadsheet. Our templates go further — dashboards, automations, and data validation built in, tested to the cent, in matching Excel and Google Sheets versions.

Browse premium templatesSee free templates

Frequently asked questions

Is my spreadsheet uploaded anywhere?

No. Reading the file and building the JSON both happen in your browser using JavaScript — nothing is sent to a server. You can disconnect from the internet after the page loads and the tool still works.

What's the difference between "array of objects" and "array of arrays"?

Array of objects gives one JSON object per row, with keys taken from your header row — the shape most scripts and APIs expect. Array of arrays keeps the header row as the first array element, useful for tools that expect raw tabular arrays instead of keyed objects.

Can I convert a workbook with multiple sheets?

Yes. Turn on "Multiple sheets" and the export becomes one JSON object keyed by sheet name, e.g. { "Customers": [...], "Orders": [...] }, instead of only converting the first sheet.

What does the dot-notation nesting option do?

If your headers are already flattened with dots — address.city, address.zip — turning on "Nest headers with dots" rebuilds the nested object: { "address": { "city": ..., "zip": ... } }. Leave it off if you want flat keys exactly as written in the header row.

How are dates and numbers handled?

With type detection on (the default), a column where every value looks like a number, an ISO date, or true/false is exported as that JSON type rather than a string. Turn it off if you want every value exported exactly as text.

More free tools & templates