Excel to JSON Converter

Parses an uploaded Excel workbook (.xlsx, .xls, or .csv) with SheetJS, lets you pick which sheet to convert when the file has more than one, and turns the header row and data rows into a JSON array of row objects entirely in your browser. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-26

Overview

Introduction

Turning a spreadsheet into JSON usually means opening it, exporting to CSV, and running that through a separate converter, losing sheet selection and type information along the way.

This tool skips that: upload the real .xlsx, .xls, or .csv file directly and get JSON back, entirely in your browser.

What Is Excel to JSON Converter?

A real file-upload Excel-to-JSON converter, built on SheetJS, the same parsing library used across most JavaScript spreadsheet tooling.

It reads a workbook's actual binary structure rather than assuming the file has already been exported to a plain-text format.

How Excel to JSON Converter Works

The uploaded file's bytes are parsed into a SheetJS workbook, which exposes every sheet by name.

The selected sheet's first row becomes the JSON object keys, and each subsequent row becomes one object in the resulting array, with empty cells represented as `null`.

When To Use Excel to JSON Converter

Use it when you have data in an .xlsx or .xls file that a script or API needs as JSON, without a manual CSV export step in between.

It's also useful for quickly inspecting what a spreadsheet's data actually looks like once shaped into JSON, header row included.

Features

Advantages

  • Reads real Excel binary formats directly, not just CSV, so formulas' computed values and multiple sheets are accessible.
  • Lets you pick exactly which sheet to convert when a workbook has more than one.
  • Runs entirely client-side, so spreadsheet data never leaves your browser.

Limitations

  • Only one sheet converts to JSON at a time; multi-sheet output as a single nested object isn't supported.
  • Capped at 25 MB per file to keep parsing responsive on the main thread.

Excel to JSON vs. CSV to JSON

Excel to JSON vs. CSV to JSON
ToolReads .xlsx/.xls directlyMultiple sheetsRequires manual export first
Excel to JSONYesYes (pick one at a time)No
CSV to JSONNoNo (CSV has one table)Yes, export to CSV first

Examples

Converting a two-row sheet

Input

Sheet1: header row [name, age], data rows [Ada, 30] and [Grace, 40]

Output

[
  { "name": "Ada", "age": 30 },
  { "name": "Grace", "age": 40 }
]

The header row's cells become object keys, and each data row becomes one array entry.

Best Practices & Notes

Best Practices

  • Keep a clean, single header row at the top of the sheet you're converting; merged cells or multi-row headers won't map cleanly to JSON keys.
  • Check the sheet picker before assuming which sheet was converted, especially for workbooks with several similarly-named tabs.
  • Remove fully blank rows or columns in the source sheet first, since they still produce corresponding JSON entries with mostly-null values.

Developer Notes

Parsing uses `XLSX.read(bytes, { type: "array" })` and row extraction uses `XLSX.utils.sheet_to_json(sheet, { defval: null })` so that empty cells become explicit `null` values instead of missing keys, keeping every row object's key set consistent.

Excel to JSON Converter Use Cases

  • Converting a spreadsheet export from another system into JSON for an API request body
  • Pulling one sheet out of a multi-tab workbook as structured data for a script
  • Inspecting a spreadsheet's actual row shape before writing an import pipeline for it

Common Mistakes

  • Assuming every sheet in a workbook converts at once; only the sheet selected with the buttons above the output is converted.
  • Not noticing a sheet has extra blank rows or columns, which show up as JSON objects made mostly of `null` values.

Tips

  • If a numeric column reads as text in the output, check that the source cells in Excel are formatted as numbers rather than text before uploading.
  • For very wide sheets, download the JSON and inspect it in an editor rather than scrolling the in-page output panel.

References

Frequently Asked Questions