Excel to JSON Converter
Convert Excel files (.xlsx, .xls, .xlsm) to JSON online with multi-worksheet support, raw primitive casting, and JSON preview. 100% client-side conversion.
Convert Excel files to JSON online with an easy browser-based converter. Upload your spreadsheet, preview the JSON output, copy it, or download it.
Input Excel Spreadsheet
Supports .xlsx & .xlsDrag & drop your Excel file here
or click to browse from your device
Or click "Sample Excel" above for instant testing.
Converted JSON Output
Parsed JSON payload will appear here
Upload an Excel file or click "Sample Excel" above to preview converted JSON data.
1. How to Use the Excel to JSON Converter
Converting Microsoft Excel spreadsheets (.xlsx, .xls) to JavaScript Object Notation (JSON) transforms tabular workbook data into structured arrays or multi-sheet object maps ready for web APIs and NoSQL databases. Follow these 3 simple steps:
.xlsx, .xls, or .xlsm file into the upload dropzone, browse your device, or click Sample Excel to load a test workbook.2. What Is Excel to JSON Conversion?
Excel workbooks store tabular grid data organized into rows, columns, formulas, and multiple worksheet tabs. While Excel is the business standard for financial modeling and reporting, software applications, backend services, and NoSQL databases (like MongoDB, Firebase, and PostgreSQL JSONB) exchange data using JSON (JavaScript Object Notation).
Excel to JSON conversion parses the underlying spreadsheet cell grid, maps column header names from row 1 to JSON property keys, converts cell data types into native JSON primitives (numbers, booleans, strings, nulls), and wraps records into clean JSON objects.
100% Client-Side Processing
All spreadsheet unzipping and SheetJS parsing execute locally in your web browser memory. Your Excel files are never uploaded to remote servers.
Multi-Worksheet Support
Convert individual worksheet tabs or select 'All Worksheets (Map)' to export the entire workbook into a JSON dictionary of arrays.
Native Type Primitive Preservation
Preserves numeric floats, integers, and boolean flags (`true`/`false`) as native JSON primitives instead of forcing everything into raw text strings.
OpenXML & Legacy Format Compatibility
Full compatibility with modern OpenXML files (`.xlsx`), macro-enabled workbooks (`.xlsm`), legacy binary files (`.xls`), and text feeds (`.csv`, `.tsv`).
3. Convert Excel Rows into JSON Objects
When converting an Excel worksheet grid, Row 1 is automatically extracted as property header keys, and subsequent data rows become typed JSON objects in an array:
Excel Worksheet Grid
[Row 1 Headers]: ID | Name | Department | Active | Salary [Row 2 Data] : 101 | Alice Smith | Engineering | TRUE | 135000 [Row 3 Data] : 102 | Bob Jones | Design | FALSE | 115000
Converted JSON Array
[
{
"ID": 101,
"Name": "Alice Smith",
"Department": "Engineering",
"Active": true,
"Salary": 135000
},
{
"ID": 102,
"Name": "Bob Jones",
"Department": "Design",
"Active": false,
"Salary": 115000
}
]4. Excel Cell Formats to JSON Data Types
How spreadsheet cell types and formatting rules are mapped into JSON primitives:
| Excel Cell Type | Excel Cell Example | JSON Representation | Notes & Behavior |
|---|---|---|---|
| Text / String | "Alice" | "Alice" | Clean string literal |
| Numeric Integer / Float | 95000 or 149.99 | 95000 / 149.99 | Cased as native JSON number |
| Boolean Flag | TRUE / FALSE | true / false | Cased as native boolean |
| Empty / Blank Cell | blank cell | null | Emits explicit null value |
| Formulas | =SUM(A1:A5) | Cached result value | Evaluates compiled cached result |
5. Date & Serial Number Engine Explained
Excel does not store dates as ISO strings. Instead, dates are stored as floating-point serial numbers representing elapsed days since December 31, 1899 (for example, serial 45123.5 corresponds to 2023-07-15 12:00:00).
ToolMono's conversion engine accounts for Excel date formatting metadata and epoch offsets, outputting clean formatted date strings or ISO timestamps while allowing raw numeric serial extraction when Raw Values is toggled.
6. Multi-Worksheet Conversion Strategy
Workbooks with multiple worksheet tabs can be exported in two distinct structural configurations:
Single Sheet Extraction (Default)
Converts a selected worksheet tab into a standard top-level JSON array of row objects.
[
{ "ID": 101, "Name": "Alice" },
{ "ID": 102, "Name": "Bob" }
]All Worksheets Map ("all")
Exports the entire workbook into a top-level dictionary where sheet tab names map to their respective row arrays.
{
"Employees": [{ "ID": 101, "Name": "Alice" }],
"Inventory": [{ "SKU": "PROD-1", "Stock": 45 }]
}7. Supported Excel Formats (.xlsx, .xls, .xlsm)
The converter supports all major spreadsheet file specifications:
| File Extension | Format Specification | Max Rows Supported | Browser Support |
|---|---|---|---|
| .xlsx | ISO/IEC 29500 OpenXML Zip Archive | 1,048,576 rows | 100% Supported |
| .xls | Legacy Microsoft BIFF8 Binary Document | 65,536 rows | 100% Supported |
| .xlsm | Macro-Enabled OpenXML Spreadsheet | 1,048,576 rows | 100% Supported |
| .csv / .tsv | Plain Text Tabular Data Feeds | Browser Memory Limited | 100% Supported |
8. Formulas, Empty Cells & Merged Ranges
Key considerations for complex spreadsheet cell structures:
Formula Execution
Excel files store both the raw uncompiled formula string (e.g. =SUM(A1:A5)) and the cached calculated result. ToolMono extracts the compiled result value generated when the file was last saved in Excel.
Merged Cell Anchor Values
Merged cell ranges store their value in the top-left anchor cell. Unanchored cells within the merged block return null during row object mapping.
Leading Zero Identifiers
Numeric IDs like ZIP codes (00123) formatted as Text in Excel are safely preserved as string primitives, preventing leading zero truncation.
9. Excel vs JSON Comparison Matrix
| Dimension | Microsoft Excel | JSON |
|---|---|---|
| Primary Container | Workbook with Worksheets & Cell Grid | Hierarchical Key-Value Object / Array |
| Ideal Use Case | Business reporting & financial models | REST APIs & NoSQL database payloads |
| Human Editing | Native graphical spreadsheet application | Text & code editors |
| Multiple Sheets | Native worksheet tabs | Represented as top-level JSON dictionary |
10. Practical Conversion Examples
Explore realistic real-world Excel to JSON transformation patterns across diverse business domains:
1. E-Commerce Product Catalog (Primitives & Booleans)
Product InventoryStandard 2D spreadsheet table containing product details, prices, stock counts, and availability flags converted into typed JSON objects.
SKU | Title | Price | Stock | InStock PROD-001 | Mechanical Keyboard | 149.99 | 42 | TRUE PROD-002 | 4K Gaming Monitor | 499.50 | 0 | FALSE
[
{
"SKU": "PROD-001",
"Title": "Mechanical Keyboard",
"Price": 149.99,
"Stock": 42,
"InStock": true
},
{
"SKU": "PROD-002",
"Title": "4K Gaming Monitor",
"Price": 499.50,
"Stock": 0,
"InStock": false
}
]2. Multi-Worksheet Workbook Map ("all" Worksheets)
Multi-Tab WorkbookMulti-tab workbook containing "Employees" and "Department_Budget" sheets converted into a top-level dictionary where sheet names map to row arrays.
[Sheet: Employees] EmpID | Name | Role 101 | Alice Smith | Engineer [Sheet: Department_Budget] Dept | Q1_Budget | Approved Engineering | 500000 | TRUE
{
"Employees": [
{ "EmpID": 101, "Name": "Alice Smith", "Role": "Engineer" }
],
"Department_Budget": [
{ "Dept": "Engineering", "Q1_Budget": 500000, "Approved": true }
]
}3. Formula Cells & Cached Calculated Values
Calculated Cell FormulasExtracting compiled numerical results from Excel cells containing equations (e.g. =B2*C2).
Item | UnitPrice | Qty | TotalPrice (=B2*C2) Monitor | 250.00 | 4 | [Cached: 1000.00]
[
{
"Item": "Monitor",
"UnitPrice": 250.00,
"Qty": 4,
"TotalPrice": 1000.00
}
]11. Developer Code Implementation Guide (Python & JS)
Production-grade code implementation snippets for parsing Excel files into JSON across major programming languages:
1. Python (Pandas Library)
pip install pandas openpyxlimport pandas as pd
# Load specific sheet from Excel file into DataFrame
df = pd.read_excel("sales_report.xlsx", sheet_name="Q1_Sales")
# Export to JSON array of objects with 2-space indentation
json_data = df.to_json(orient="records", indent=2)
with open("output.json", "w", encoding="utf-8") as f:
f.write(json_data)2. Python (openpyxl Native Parser)
pip install openpyxlimport json
import openpyxl
wb = openpyxl.load_workbook("data.xlsx", data_only=True)
sheet = wb.active
headers = [cell.value for cell in sheet[1]]
records = []
for row in sheet.iter_rows(min_row=2, values_only=True):
row_dict = {headers[i]: row[i] for i in range(len(headers))}
records.append(row_dict)
json_output = json.dumps(records, indent=2, default=str)
print(json_output)3. JavaScript / Node.js (SheetJS @e965/xlsx)
npm install @e965/xlsxconst XLSX = require("@e965/xlsx");
const fs = require("fs");
// Read workbook buffer from disk
const workbook = XLSX.readFile("inventory.xlsx");
// Get first worksheet tab
const firstSheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[firstSheetName];
// Parse worksheet grid to JSON objects array
const jsonData = XLSX.utils.sheet_to_json(worksheet, {
raw: true,
defval: null
});
fs.writeFileSync("inventory.json", JSON.stringify(jsonData, null, 2), "utf8");4. Go (excelize Library)
go get github.com/xuri/excelize/v2package main
import (
"encoding/json"
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f, err := excelize.OpenFile("users.xlsx")
if err != nil {
panic(err)
}
defer f.Close()
rows, err := f.GetRows("Sheet1")
if err != nil || len(rows) < 2 {
return
}
headers := rows[0]
var result []map[string]string
for _, row := range rows[1:] {
item := make(map[string]string)
for i, colCell := range row {
if i < len(headers) {
item[headers[i]] = colCell
}
}
result = append(result, item)
}
jsonBytes, _ := json.MarshalIndent(result, "", " ")
fmt.Println(string(jsonBytes))
}12. Methodology & Client-Side Privacy Commit
ToolMono is committed to data privacy and security. Our Excel to JSON Converter parses, validates, and transforms spreadsheet files 100% locally within your browser V8 engine.
Your input Excel workbooks, uploaded files, and generated JSON outputs are never transmitted across the network, stored in remote databases, or logged on servers. This architecture makes ToolMono completely safe for sensitive financial spreadsheets, confidential customer records, and internal enterprise data.
13. Frequently Asked Questions
14. References & Official Standards
Official specifications and standards referenced by ToolMono:
ISO/IEC 29500: OpenXML SpreadsheetML Standard
International standard specification for XLSX and SpreadsheetML file structures.
RFC 8259: The JSON Data Interchange Format
Official specification for JSON data output.
W3C Model for Tabular Data and Metadata on the Web
W3C recommendation for spreadsheet row-to-object transformation.
Related Tools
Browse all toolsJSON to Excel Converter
Convert JSON data to Excel (.xlsx) online. Flatten nested objects, preview spreadsheet data, and download an Excel workbook directly from your browser.
CSV to JSON Converter
Convert CSV to JSON online with file upload, custom delimiters, smart type inference, dot notation unflattening, and JSON preview. 100% client-side conversion.
JSON to CSV Converter
Convert JSON to CSV online with support for arrays, nested objects, custom delimiters and Excel-friendly CSV output. Fast browser-based conversion.
Free Online CSV Validator
Free online CSV validator. Check CSV syntax, detect unclosed quotes, find row and column mismatches, and validate delimiters directly in your browser.
Excel to JSON Converter
Convert Excel files (.xlsx, .xls, .xlsm) to JSON online with multi-worksheet support, raw primitive casting, and JSON preview. 100% client-side conversion.
JSON Schema Generator
Instantly generate JSON Schema from any JSON payload. Supports Draft 7 and Draft 2020-12 with fast, browser-based processing.
Word Counter
Free word and character counter for essays, blogs, students, SEO, social media and everyday writing.
SQL Query Analyzer
Inspect SQL statement structure, detect anti-patterns, evaluate query complexity, and generate plain-English summaries directly in your browser.