UtilityKit

500+ fast, free tools. Most run in your browser only; Image & PDF tools upload files to the backend when you run them.

JSON to XLSX Converter

Convert a JSON array of objects to an Excel XLSX download. Sheet name input, column order from first object’s keys.

About JSON to XLSX Converter

JSON to XLSX converts a JSON array of objects into a downloadable Excel workbook (.xlsx). The first object's keys define the column order; subsequent rows reuse those columns and append any new keys at the end so no data is lost when objects vary slightly. Object and array values inside cells are JSON-stringified — Excel cells must be scalar — preserving the data for later parsing while keeping the spreadsheet importable. Sheet name and file name are configurable; both are sanitised to remove characters that Excel rejects (slashes, brackets, asterisks). The tool uses SheetJS loaded from CDN to write the OOXML format directly in the browser, then triggers a save through a Blob URL. The entire pipeline runs locally — JSON containing tokens, customer records, or financial data is never uploaded.

Why use JSON to XLSX Converter

  • Browser-Only Privacy: JSON is converted and the XLSX file is generated entirely in your browser via SheetJS — no server round-trip means tokens, PII, and financial data never leave your tab.
  • Stable Column Order: The first object's keys define the column order, and any new keys from later objects are appended at the end — irregular JSON does not lose data, and the schema stays predictable.
  • Sheet & File Name Customisation: Set the visible sheet tab name and the saved filename without renaming after download — useful when batching multiple exports for archival.
  • Nested Object Preservation: Object and array values are JSON-stringified into their cells so the structure is recoverable later — Excel cells must be scalar, but the JSON content is intact.
  • OOXML Format: Output is a standard .xlsx file, opened by Excel 2007+, Google Sheets, Numbers, LibreOffice, and every spreadsheet tool used in the last fifteen years.
  • Live Preview: Verify the column order and value formatting against a 50-row table before downloading, catching schema mistakes without opening Excel.

How to use JSON to XLSX Converter

  1. Paste a JSON array of objects into the input panel — typically what an API or database query returns.
  2. Set a Sheet name (defaults to Sheet1) and a File name (defaults to export). Both are sanitised for Excel compatibility.
  3. Click Preview to see the first 50 rows rendered as a table, with the column order coming from the first object's keys.
  4. Click ↓ Download XLSX to generate the workbook and save it to disk via your browser's download dialog.
  5. Open the downloaded .xlsx in Excel, Google Sheets, Numbers, or LibreOffice — all support OOXML.
  6. Use Clear to reset the form and start over with a different JSON payload.

When to use JSON to XLSX Converter

  • Sharing API response data with non-developer stakeholders who use Excel for analysis.
  • Producing weekly or monthly Excel reports from JSON output of a backend job.
  • Generating an Excel-friendly export from a JSON file in version control for stakeholders to review.
  • Converting database query results (returned as JSON by a tool) into Excel for ad-hoc filtering and pivoting.
  • Creating sample Excel files for application tests by hand-writing JSON fixtures and converting them.
  • Preparing data exports for finance, operations, or sales teams who insist on .xlsx format.

Examples

Simple two-row export

Input: [{"id":1,"name":"Alice","city":"Paris"},{"id":2,"name":"Bob","city":"Berlin"}]

Output: Excel sheet "Sheet1": | id | name | city | |----|-------|--------| | 1 | Alice | Paris | | 2 | Bob | Berlin |

Mixed keys (later object adds field)

Input: [{"id":1,"name":"Alice"},{"id":2,"name":"Bob","role":"admin"}]

Output: Excel sheet: | id | name | role | |----|-------|-------| | 1 | Alice | | | 2 | Bob | admin |

Nested object stringified

Input: [{"id":1,"meta":{"role":"admin"}}]

Output: Excel sheet: | id | meta | |----|-------------------| | 1 | {"role":"admin"} |

Tips

  • Excel sheet names cannot contain : / \ ? * [ ]; the tool sanitises them automatically but watch the trimmed result.
  • Sheet names are also limited to 31 characters in Excel — longer names are truncated by the tool to avoid file corruption.
  • Nested objects and arrays in JSON values are JSON-stringified into Excel cells. Use a separate column or pre-flatten with json-flatten-unflatten if you need scalar values for sorting or formulas.
  • If multiple objects have different keys, the column order is taken from the first object plus any new keys appended at the end — sort or reorder objects first if a specific column order matters.
  • For very large arrays (>100K rows), generation slows because SheetJS writes the whole file in memory — split into multiple sheets or files for huge datasets.

Frequently Asked Questions

Is my JSON uploaded to a server?
No. JSON is converted and the XLSX file is generated entirely in your browser using SheetJS. Tokens, PII, and exports stay in your tab — the only download is the user-initiated save.
What if my JSON objects have different keys?
The first object's keys define the initial column order. Any new keys introduced by later objects are appended at the end — no data is dropped, and the column order remains predictable.
Can it export multiple sheets at once?
Not in this tool — one JSON array becomes one sheet. To produce a multi-sheet workbook, run the tool multiple times and combine the .xlsx files in Excel, or use a SheetJS-based script.
How are nested objects and arrays handled?
They are JSON-stringified into the cell — Excel cells must be scalar, but the JSON content is preserved so you can parse it later. For scalar values, pre-flatten the JSON with json-flatten-unflatten.
What is the maximum number of rows?
Excel itself supports up to 1,048,576 rows per sheet. In practice, browser memory limits this tool to ~100K rows comfortably; beyond that, generation slows noticeably.
Will the file open in Google Sheets and Numbers?
Yes. The output is a standard .xlsx file (OOXML) and opens cleanly in Google Sheets, Apple Numbers, LibreOffice, and Excel. No proprietary extensions are used.
Why is my sheet name truncated?
Excel limits sheet names to 31 characters and forbids the characters : / \ ? * [ ]. The tool truncates and sanitises automatically — set a shorter name to avoid the truncation.
How are date strings handled?
They are written as text strings, not Excel date serial numbers. To get Excel-native date types, post-process the file or convert the JSON values into JavaScript Date objects before exporting (a workflow not exposed in this UI).

Explore the category

Glossary

XLSX
The modern Excel file format based on Office Open XML, packaged in a ZIP archive. Default since Excel 2007 and supported by Google Sheets, Numbers, LibreOffice, and every modern spreadsheet tool.
OOXML
Office Open XML — the ISO standard markup language used by .xlsx, .docx, and .pptx files. Each cell, formula, and style is XML inside a ZIP package.
SheetJS
An industry-standard JavaScript library for reading and writing spreadsheet formats including XLSX, XLS, CSV, and ODS. Loaded from CDN only when needed.
Sheet
One tab within an Excel workbook. This tool generates a single-sheet workbook; the sheet name appears as the tab label inside the file.
Column order
The left-to-right sequence of columns. Derived from the first object's keys, with later-introduced keys appended on the right so no data is dropped.
Blob URL
A temporary in-memory URL pointing to binary data, used here to trigger the file download without server upload. The Blob is reclaimed when the page closes.