XLSX to JSON Converter

Convert an Excel spreadsheet to JSON - free, no upload.

XLSX to JSON

Your spreadsheet is read inside this page. It is never uploaded.

 

What this tool does

Choose a .xlsx file, and it converts to an array of JSON objects using your first row as the field names - or toggle to a plain array of arrays if that's what you need instead.

Converts an Excel .xlsx spreadsheet to JSON, reading the file's actual internal cell grid.

Defaults to an array of objects, using the first row as field names for every other row - the most common shape expected from a spreadsheet-to-JSON conversion.

Toggle to a plain array of arrays instead, if you want the raw rows without field names.

Matches each sheet's name to its actual data file using the workbook's own internal relationship mapping, rather than assuming sheet1.xml is the first sheet - so a reordered or renamed sheet still converts under its correct name.

How to use it

  1. Choose a .xlsx file.
  2. Pick a sheet if there's more than one.
  3. Copy or download the JSON.

Why use this converter

APIs and apps want JSON, and spreadsheets are where data lives. Converting rows into objects with header names saves scripting.

Why we built it

We built the XLSX to JSON converter to default to an array of objects keyed by the header row, the shape most people want. Go to CSV with XLSX to CSV and tidy the JSON with the JSON formatter.

For a neighbouring job there is also the CSV to Excel Converter and the JSON to Excel Converter.

Who this tool is for

  • Developers turning spreadsheets into data files
  • Analysts preparing API examples
  • Teachers sharing datasets

When to use it

  • Feeding spreadsheet data to an app.
  • Creating test data.
  • Transforming a table into objects.
  • Selecting a sheet.

Why objects-with-headers is the default, not arrays

Most uses of 'convert my spreadsheet to JSON' expect named fields, not positional data.

A JSON array of arrays technically represents a spreadsheet's data, but it's rarely what someone actually wants - working with rows means remembering that index 3 is the 'email' column, which is fragile and easy to get wrong. Using the header row as field names produces objects like {"name": "...", "email": "..."}, self-describing and far easier to work with in code, which is why it's the default here - the array-of-arrays option is still available with one toggle for when the raw shape is genuinely what's needed.

How values keep their type instead of turning into strings

A spreadsheet cell already knows whether it holds a number, text or a checkbox - JSON can keep that.

Each cell in a .xlsx file is tagged internally with its own type - a number, a shared piece of text, an inline string, or a boolean from a checkbox-style cell. This tool reads that tag directly and produces the matching JSON type: a number stays a JSON number (85, not "85"), and a TRUE/FALSE cell becomes a JSON boolean rather than the literal text. This matters because a naive conversion that reads every cell as a printed string forces you to re-parse numbers and booleans back out of text after the fact; keeping the original type means the JSON is usable immediately in code that expects real numbers to sort or sum.

A blank header cell is given a generic name like "column_3" instead of being left out, since a JSON object cannot have a key that is an empty string - this keeps every row's object holding the same set of fields even when the sheet has an unlabelled column.

What you give it, and what you get back

Input and output of XLSX to JSON Converter
ItemDetails
InputAn .xlsx file and sheet.
OutputJSON array of objects using the first row as keys.
AlternativeArray of arrays.

Issues you may run into

Common problems with XLSX to JSON Converter
What you seeWhy it happensWhat to do
Old .xls is rejectedOnly .xlsx is supported.Save as .xlsx.
Keys are wrongThe first row is not a header.Use array output or fix the header.
Dates show as numbersExcel stores serial dates.Convert in your code.

Assumptions and limitations

Frequently asked questions

How do I convert an Excel file to JSON for free?

Choose your .xlsx file, pick a sheet if needed, and copy or download the resulting JSON.

Does this use my header row as field names?

Yes, by default - toggle 'Use first row as field names' off if you want a plain array of arrays instead.

What happens to formulas?

The last value Excel calculated and saved in the file is used - formulas themselves are not re-evaluated.

Does this work with old .xls files?

No - only modern .xlsx files, which are ZIP-based. Older .xls files use a completely different binary format.

Is my spreadsheet uploaded anywhere?

No. Conversion happens entirely in your browser - your file is never sent to a server.

Do numbers and checkboxes come out as real JSON types?

Yes - a cell's internal type tag is read directly, so a number becomes a JSON number and a checkbox-style TRUE/FALSE cell becomes a JSON boolean, rather than everything turning into quoted text.

Does converting handle sheets that have been reordered or renamed?

Yes - each sheet's name is matched to its actual data through the workbook's own internal relationship mapping, not by guessing from the underlying file's number, so a reordered or renamed sheet still converts under the correct name.