UtilityKit

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

XLSX to JSON Converter

Convert Excel XLSX or XLS files to JSON array. Sheet picker, header-row detection, optional type coercion.

About XLSX to JSON Converter

XLSX to JSON converts Excel workbooks (.xlsx, .xls) into a JSON array that any modern API or database can consume. Upload a workbook, pick which sheet to convert, choose whether the first row is a header (used as object keys) or whether to auto-name columns col1, col2, …, and optionally coerce numeric and boolean strings into native JSON numbers and booleans (so "42" becomes 42 and "true" becomes true). The tool uses SheetJS, an industry-standard library for parsing Excel binary formats, loaded on-demand from CDN. The whole conversion runs in your browser via the File API — your spreadsheet never reaches a remote server, which is essential when data contains customer records, financial figures, or competitive intelligence. Output JSON is pretty-printed for readability and can be copied to clipboard or downloaded as a .json file directly.

Why use XLSX to JSON Converter

  • Browser-Only Privacy: Files are parsed in your tab via the File API and SheetJS — Excel data with customer records, salaries, or financial details never reaches a remote server.
  • Multi-Sheet Workbooks: Every sheet in the workbook is available in the picker, so you can convert each sheet on demand without splitting the file beforehand.
  • Header Row Detection: Choose between using row 1 as object keys (the standard "first row is header" convention) or treating all rows as data with auto-generated column names.
  • Optional Type Coercion: Numeric strings ("42", "3.14") become JSON numbers, and "true"/"false" become JSON booleans, so downstream consumers do not have to re-parse strings.
  • Native Excel Format Support: SheetJS handles both .xlsx (OOXML) and legacy .xls (BIFF) binary formats — no need to convert files first in Excel.
  • Direct Download: Save the JSON output as a file with the original workbook name and sheet name embedded, ready to commit or send to teammates.

How to use XLSX to JSON Converter

  1. Click the Upload XLSX or XLS file button and pick a workbook from your device.
  2. Once parsed, choose which sheet to convert from the dropdown — multi-sheet workbooks all become available.
  3. Pick header mode: First row is header to use row 1 as object keys, or No header to auto-name columns col1, col2, ….
  4. Toggle Coerce numbers & booleans to convert string values like "42" or "true" into native JSON 42 or true types.
  5. Click Convert to produce the JSON array and review it in the output panel.
  6. Copy the JSON to clipboard or click Download .json to save it to disk.

When to use XLSX to JSON Converter

  • Migrating data from a customer-supplied Excel sheet into a Node.js, Python, or REST API pipeline that expects JSON.
  • Generating fixtures for application tests from a hand-edited Excel file maintained by non-developers.
  • Producing seed data for a database from a spreadsheet that finance or operations teams update weekly.
  • Converting a single sheet of a multi-sheet Excel report into JSON for visualisation in a dashboard.
  • Pre-processing Excel exports from legacy ERP systems before importing into a modern SaaS API.
  • Quickly inspecting the structure of an unfamiliar Excel file by viewing it as JSON in the browser.

Examples

Sheet with header row + type coercion

Input: Excel sheet: | id | name | active | |----|-------|--------| | 1 | Alice | true | | 2 | Bob | false |

Output: [ { "id": 1, "name": "Alice", "active": true }, { "id": 2, "name": "Bob", "active": false } ]

Sheet with no header (auto-named columns)

Input: Excel sheet: | Alice | 30 | | Bob | 28 |

Output: [ { "col1": "Alice", "col2": 30 }, { "col1": "Bob", "col2": 28 } ]

Mixed types preserved without coercion

Input: Excel sheet: | zip | qty | | 01234 | 5 |

Output: [ { "zip": "01234", "qty": "5" } ]

Tips

  • Coerce numbers & booleans is on by default — turn it off when string-formatted values like ZIP codes or phone numbers must keep their leading zeros.
  • If your Excel file has a multi-row header (e.g. category + subcategory), pre-merge it to a single header row in Excel first; the tool only treats one row as header.
  • For very large workbooks (>50 MB), browser memory becomes the limit — split into smaller files or use a server-side parser like Python's openpyxl.
  • Sheet names with special characters are preserved in the dropdown but sanitised in the output filename when downloading.
  • Date cells in Excel are stored as serial numbers internally — they appear as numbers in the JSON output. To get ISO date strings, set the cell format to text in Excel before exporting.

Frequently Asked Questions

Is my Excel file uploaded to a server?
No. The file is read via the browser File API and parsed in-memory by SheetJS. The contents — including PII, financials, or proprietary data — never cross the network.
Does it support both .xlsx and .xls files?
Yes. Modern .xlsx (Office Open XML) and legacy .xls (BIFF binary) are both supported through SheetJS. Macro-enabled .xlsm files work too, though macros are not executed.
What about multi-sheet workbooks?
All sheets are exposed in the picker dropdown after upload. Convert one sheet at a time; switch sheets without re-uploading the file.
Why are my dates appearing as numbers like 44927?
Excel stores dates as serial numbers (days since 1900-01-01). Set the cell format to text or apply a date format in Excel before saving, or convert the numbers to ISO dates in your downstream code with new Date((n - 25569) * 86400000).
How are formulas handled?
SheetJS reads the cached calculated value, not the formula string. So if cell A1 contains =SUM(B1:B10), the JSON shows the sum value, not the formula.
What is the maximum file size?
There is no hard limit, but browser memory becomes the bottleneck. Files up to 50-100 MB usually work; very large workbooks may freeze the tab during parsing.
Are merged cells handled?
SheetJS reads merged cells as if only the top-left has a value, with the other cells being empty. The JSON output reflects this — merge regions appear as a single value followed by empty strings or null.
Can I convert all sheets at once?
Not in this tool — for performance and clarity, conversion is one sheet at a time. To convert all sheets, repeat the action for each sheet name in the picker; the JSON output is independent.

Explore the category

Glossary

XLSX
The modern Excel file format, based on Office Open XML (OOXML) packaged in a ZIP archive. Standard since Excel 2007 and the default for new workbooks.
XLS
The legacy Excel binary format (BIFF), used by Excel 97-2003. Still common in enterprise software exports — handled by this tool through SheetJS.
SheetJS
An industry-standard JavaScript library for reading and writing spreadsheet formats including XLSX, XLS, CSV, and ODS. Loaded from CDN only when a file is selected.
Header row
The first row of a sheet, conventionally containing column names. When enabled, those names become object keys in the JSON output.
Type coercion
Converting string values that look like numbers or booleans into their native JSON types. Optional — disable when values must keep their original string form (e.g. ZIP codes with leading zeros).
Sheet
One tab within an Excel workbook. Workbooks can contain many sheets; this tool converts one sheet at a time and shows them all in a picker dropdown.