JSON to Excel Converter

Parses a pasted or uploaded JSON array of flat objects and builds a real .xlsx workbook you can download, the reverse of exporting a sheet to JSON, entirely in your browser. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-27

Overview

Introduction

Turning a JSON array into a proper spreadsheet file usually means converting it to CSV first and then opening that in a spreadsheet app, an extra step and an extra format hop.

This tool skips that: paste or upload a JSON array of objects and download a real .xlsx workbook back, entirely in your browser.

What Is JSON to Excel Converter?

A JSON-to-Excel converter built on SheetJS, the same writing library used across this repo's other Excel tools.

It builds an actual .xlsx binary file directly from JSON objects rather than round-tripping through CSV text first.

How JSON to Excel Converter Works

The pasted or uploaded text is parsed as JSON and checked to confirm it's a top-level array of flat objects.

Every object's keys are collected into a single header row (in first-seen order across the array), each object becomes one row beneath it, and SheetJS serializes the result into real .xlsx binary bytes that download as a file.

When To Use JSON to Excel Converter

Use it when you have JSON data (from an API response, a script, or a database export) and need a proper spreadsheet file for sharing or importing into Excel or Google Sheets.

It's also useful for quickly checking how a JSON array's objects will line up as spreadsheet rows and columns.

Features

Advantages

  • Produces a real .xlsx binary, not a CSV or text file with a renamed extension, so it opens correctly in every spreadsheet app.
  • Builds the header row from the union of every object's keys, so objects with slightly different shapes still line up in one sheet.
  • Runs entirely client-side, so pasted data never leaves your browser.

Limitations

  • Only flat objects are supported; nested objects or arrays as a field's value are written as-is into a single cell rather than expanded into further columns.
  • Produces a single-sheet workbook; splitting one JSON array across multiple sheets isn't supported.

JSON to Excel vs. JSON to CSV then opening in a spreadsheet app

JSON to Excel vs. JSON to CSV then opening in a spreadsheet app
ApproachExtra CSV stepProduces a downloadable .xlsxRuns in-browser
This toolNoYesYes
JSON to CSV, then open and Save AsYesYes, after a manual save stepPartially

Examples

Converting a two-object array

Input

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

Output

A downloadable converted.xlsx workbook with a Sheet1 tab containing 3 rows (header + 2 data rows).

Both objects share the same keys, so the header row is [name, age] with one worksheet row per object.

Best Practices & Notes

Best Practices

  • Keep every object in the array flat (string, number, boolean, or null values); flatten nested objects before converting if you need their fields as separate columns.
  • Check that all objects share consistent key names and casing, since "Name" and "name" are treated as different columns.
  • Open the downloaded .xlsx once in a spreadsheet app to confirm number and boolean values imported with the types you expect.

Developer Notes

Header columns are collected as the union of `Object.keys(row)` across every array entry, matching the convention in `src/domains/tools/categories/json/lib/json-to-csv.ts`. Rows are built with `XLSX.utils.aoa_to_sheet` and written with `XLSX.write(workbook, { type: "array", bookType: "xlsx" })`, the same write call this repo's Random Excel Generator uses.

JSON to Excel Converter Use Cases

  • Turning an API response's JSON array into a spreadsheet file to share with non-technical teammates
  • Converting a database export saved as JSON into an .xlsx workbook for a report
  • Quickly checking how a JSON array's objects will line up as spreadsheet columns before writing an automated pipeline

Common Mistakes

  • Pasting a single JSON object instead of an array of objects, which this tool rejects since there's no meaningful set of rows to build.
  • Assuming nested object fields expand into their own columns automatically; they're written as a single cell's raw value instead.

Tips

  • If a numeric field imports as text, check that the source JSON stores it as a number rather than a quoted string.
  • Use the upload button in the input panel to load a .json file directly instead of copy-pasting its contents.

References

Frequently Asked Questions