Excel to JSON Converter
Turn selected XLSX or legacy XLS worksheets into JSON without uploading the workbook. Choose one shared JSON shape and shared header, blank and value rules for all selected sheets, then download one JSON file per sheet or a local ZIP. Each output uses a safe name based on its workbook sheet. Visible sheets are selected by default, while Hidden and VeryHidden sheets are shown so you can include them deliberately.
How to convert Excel to JSON
-
1
Choose an Excel workbook
Select one genuine XLSX or binary XLS file up to 20 MiB. The converter checks the file signature, not just the extension.
-
2
Select the sheets
Review visible, Hidden and VeryHidden worksheets, then select one or more sheets to convert with the same rules.
-
3
Choose the JSON rules
Use records, a matrix, a dictionary or grouped records. The chosen shape, header keys, value typing and blank handling apply to every selected sheet.
-
4
Download locally
The converter creates one safely named JSON file for each selected sheet. Several files are packaged into a ZIP in your browser.
Workbook limits and supported formats
This converter reads XLSX and legacy binary XLS workbooks. It does not accept XLSM, XLSB, ODS or CSV files. The browser verifies the file signature, so renaming another format to .xlsx or .xls is not enough.
One workbook can be up to 20 MiB, contain up to 100 worksheets and use up to 2 million cells. The converter also checks XLSX archive structure before reading it and stops output generation above 100 MiB. Those bounds keep a malformed or unusually large workbook from turning into an uncontrolled browser download.
Choose one JSON shape for the selected sheets
JSON can represent arrays and objects as well as strings, numbers, booleans and null. The right structure depends on the system that will read the file. RFC 8259 describes the JSON data model.
| Shape | How the first row is used | Good fit |
|---|---|---|
| Array of objects | Header names become property names. | API fixtures, application data and most record-based imports. |
| Matrix | The first row stays in the data. | Positional data, compact tables and tools that expect an array of arrays. |
| Dictionary | Header names become property names; one selected column supplies unique keys. | Fast lookups such as a product code to product record map. |
| Grouped arrays | Header names become property names; one selected column supplies group keys. | Records grouped by a field such as department, country or status. |
The array-of-objects form follows the default behavior documented by SheetJS: the first row supplies headers. Matrix output keeps that row because it is data rather than metadata. The selected JSON shape, property-key option, value typing and blank-value handling apply to every sheet selected in this conversion.
Object, dictionary and grouped output need a non-empty, unique header row. Dictionary output also needs unique values in the selected key column. The converter stops with a clear error when those rules are not met, instead of silently overwriting a record. You can use sanitized property keys or retain exact header text when a downstream system requires the workbook’s original wording.
Values, dates and formulas
With type inference enabled, spreadsheet numbers and booleans remain JSON numbers and booleans. You can instead keep values as strings when a receiving system controls its own casting. Empty cells can become null or empty strings. Integers outside JavaScript’s safe integer range remain strings so their digits are not silently rounded.
Date cells become ISO values only when the spreadsheet reader identifies them as dates. The converter does not guess that a text value which looks like a date is a date. This distinction matters for values such as order numbers, version labels and locale-specific date text.
The converter never runs or recalculates Excel formulas. It uses a formula’s stored cached value when the workbook has one. A formula without a cached value follows the blank-value setting.
Browser-local conversion and temporary drafts
Workbook reading, JSON generation, ZIP creation and downloads happen in your browser. The workbook, its sheet data and generated JSON are not uploaded or sent to our servers.
In the multi-step flow, a verified workbook can be held as a hash-checked temporary draft in this browser’s IndexedDB storage. The URL carries only an opaque job identifier, never the file name or worksheet values. A draft becomes unavailable after 30 minutes. Starting over or downloading asks the browser to remove it, and the tool warns you if it cannot confirm that request. If browser storage is unavailable, the tool keeps the controls on one page so you can still finish without navigation.
Frequently Asked Questions
Yes. Choose one or more sheets. The same JSON shape and value rules apply to all of them. One selected sheet creates a JSON download, while several selected sheets create one ZIP with one safely named JSON file for each sheet.
Use an array of objects for ordinary header-based records. Use a matrix when every row, including the header row, should remain positional data. Use a dictionary for unique lookups and grouped arrays when repeated values should collect related records.
Header-based shapes require non-empty, unique headers. A dictionary also requires unique values in its selected key column. Rejecting duplicates prevents an output file from silently replacing one record with another.
No. Formula cells use an existing stored cached value when available, and the tool does not recalculate formulas. It writes ISO dates only for cells the spreadsheet reader identifies as dates, rather than guessing from text.
No. Reading, conversion and download preparation stay in the browser. The multi-step flow can retain a browser-only draft for up to 30 minutes, but the workbook and its data are not sent to the server or placed in the URL. Starting over or downloading asks the browser to remove the draft and shows a warning if that request cannot be confirmed.
Related Tools
Word to Markdown Converter
Convert a Word DOCX file to clean Markdown in your browser. Keep headings, lists, links and simple tables, then copy or download the editable .md file.
Subtitle Converter
Convert SRT subtitles to WebVTT or VTT captions to SRT locally. Validate cue timings, preserve multiline text, then copy or download the result.
Archive Extractor
Inspect ZIP, JAR, XPI, DOCX, XLSX, PPTX and ODT containers locally in your browser, then download individual files without uploading the archive.
Excel Sheet Merger
Combine XLSX, XLS, XLSM, XLSB or ODS files locally. Keep source sheets separate or append rows with matching headers, then download an XLSX.
CSV to Excel
Convert CSV data to a single-sheet XLSX workbook in your browser. Review delimiters, preserve identifiers, infer safe numbers, and keep file contents local.
Excel Sheet Splitter
Split an XLSX or XLS workbook by worksheet tab, data-row chunks or a column value in your browser. Download one XLSX or a local ZIP, with no file upload.
Tool available in other languages
- Konwerter Excel na JSON [PL]
- Excel-zu-JSON-Konverter [DE]
- Excel till JSON-konverterare [SV]
- Convertisseur Excel vers JSON [FR]
- Excel JSON Dönüştürücü [TR]
- Conversor de Excel para JSON [PT]
- محول Excel إلى JSON [AR]
- Excel から JSON への変換ツール [JA]
- Excel naar JSON-converter [NL]
- Excel JSON 변환기 [KO]
- Excel 转 JSON 转换器 [ZH]
- Convertidor de Excel a JSON [ES]
- ตัวแปลง Excel เป็น JSON [TH]
- Konverter Excel ke JSON [ID]
- Trình chuyển đổi Excel sang JSON [VI]
- Convertitore da Excel a JSON [IT]
- Конвертер Excel в JSON [RU]