Skip to content
← Back

Excel to JSON - Online Tool

Data
Runs locally · Not uploaded

Convert Excel files to JSON object arrays online. All processing is done locally in your browser.

Was this result helpful?

For local tools, open DevTools → Network and search your input — it should not appear in requests.

Next steps

Usage Guide

Stakeholders send .xlsx; APIs want object arrays. Parse workbooks locally with SheetJS — first row as keys; switch worksheets from the dropdown when present. No upload.

1. Steps

Matches sheet_to_json defaults. Paste-as-values first for dirty sheets.

  1. Drop .xlsx/.xls.
  2. Pick a worksheet if multiple exist.
  3. Copy or download JSON; chain to TS types if needed.

2. Multiple sheets

No silent mega-merge of all sheets.

  • Single-sheet files skip the dropdown.
  • Export one sheet at a time; merge downstream.
  • Names come from workbook metadata.

3. Cleanup

Local and zero-install trade off memory headroom.

  • Keep leading zeros as text.
  • Inspect empties with the formatter.
  • Huge sheets leave the browser.

4. Vs CSV path

CSV text → CSV/JSON converter. Sharing with spreadsheet users → JSON→Excel. Sibling pages cover HTML/Markdown/CSV exports.

5. Types downstream

This page stays faithful to cells; beautify elsewhere.

  • Numbers may be inferred.
  • Validate with JSON Schema.
  • Semantic fakes belong in the mock generator.

6. Safety

Keep sensitive rosters local. Desensitize before commits; archive sheet name + row count with the export.

FAQ

Entirely in your own browser: SheetJS reads the workbook locally and produces the JSON on the spot, with nothing uploaded. Sensitive sheets like contracts, rosters, and payroll never need to visit a third-party converter.

The first row of the active worksheet becomes field names, and every following row turns into one object — the same default as SheetJS sheet_to_json. Dates may come out as serial numbers, and merged cells or cached formula values can surprise you; for messy sheets, paste-as-values in your spreadsheet app before uploading.

A worksheet dropdown appears showing the real sheet names, and switching recomputes instantly; single-sheet files simply hide the control. Only the selected sheet is exported — there is no automatic merge. To combine sheets, concatenate the arrays downstream with a sheet field so nothing gets silently dropped.

Very large sheets can exhaust browser memory — at the million-row scale, switch to Python/pandas or a CLI. Format leading-zero columns (employee IDs, postal codes, bank cards) as text in the source sheet or zeros may drop. Purely numeric columns get inferred as numbers; mixed columns mostly stay strings.

Go back to the source first: a filter view may be hiding rows, or the wrong sheet is selected. Empty rows and columns also create missing keys or nulls, so scan the output with a JSON formatter before importing.

The tool only reads cell values — it never executes macros or follows external links. Even so, avoid opening office documents from unknown sources in the first place, and sanitize or sample the JSON before committing it to a repo.

Related Tools

Related Articles