Free Online JSON to Excel Converter

Convert JSON to Excel (XLSX, XLS) instantly with our free online JSON to Excel converter. Transform JSON data into spreadsheets with real-time preview, automatic flattening, and smart data detection. Perfect for developers, analysts, and teams working with API data.

JSON to Excel

Download Sample Files to Practice

Transformation Pipeline

How nested JSON becomes a flat spreadsheet

1

Nested JSON Input

jsondata.json
[
  {
    "id": 1,
    "name": "Alice Johnson",
    "email": "alice@company.com",
    "department": "Engineering",
    "address": {
      "street": "123 Main St",
      "city": "Portland",
      "zip": "97201"
    },
    "skills": ["JavaScript", "React", "Node.js"],
    "active": true,
    "salary": 95000
  },
  {
    "id": 2,
    "name": "Bob Smith", 
    "email": "bob@company.com",
    "department": "Marketing",
    "address": {
      "street": "456 Oak Ave",
      "city": "Seattle",
      "zip": "98101"
    },
    "skills": ["SEO", "Content Marketing"],
    "active": true,
    "salary": 75000
  }
]

Flatten + Tabularize

3

Flattened Excel Output

idnameemaildepartmentaddress.streetaddress.cityaddress.zipskillsactivesalary
1Alice Johnsonalice@company.comEngineering123 Main StPortland97201JavaScript, React, Node.jstrue95000
2Bob Smithbob@company.comMarketing456 Oak AveSeattle98101SEO, Content Marketingtrue75000

How Nested Paths Become Column Names

Input

user.address.city

Column Header

user.address.city

Input

tags: ["a", "b"]

Cell Value

"a, b"

Input

null

Cell Value

(empty cell)

How It Works

1

Parse JSON

Upload an array of JSON objects. The engine maps all unique keys across the dataset to determine the columns.

2

Tabularize Data

Deeply nested objects and arrays are intelligently flattened or stringified to fit into a 2D grid.

3

Apply Type Inference

Numbers, booleans, and dates are recognized and formatted so Excel treats them mathematically.

4

Export .CSV / .XLSX

Download a universally compatible spreadsheet ready for pivot tables, VLOOKUPs, and chart generation.

Frequently Asked Questions

Code Examples

How to Convert JSON to Excel in Python

Converting JSON to Excel in Python is efficient using the pandas library with pd.json_normalize() to flatten nested JSON and to_excel() to write XLSX files. Pandas automatically handles data types, creates proper columns, and supports multiple sheets. You can also use openpyxl for more control over formatting, formulas, and styling. Perfect for creating reports, exporting API data, or converting JSON datasets into spreadsheets for business users.

Pythonconvert.py
import pandas as pd
import json

# Load the JSON file
with open("data.json", "r") as f:
    data = json.load(f)

# Normalize nested JSON into a flat table
df = pd.json_normalize(data)

# Export to Excel
df.to_excel("output.xlsx", index=False, engine="openpyxl")

print(f"Converted {len(df)} rows with columns: {list(df.columns)}")

How to Convert JSON to Excel with Power Query

Power Query in Excel provides a no-code way to convert JSON to Excel tables. Use Json.Document() to parse JSON files or API responses, then expand nested records and lists into columns. The visual interface lets you transform data with clicks, and queries refresh automatically when source data changes. Ideal for business users who need to import JSON data regularly without programming, create dynamic reports, or connect Excel to JSON APIs.

Power Querytransform.pq
let
    Source = Json.Document(File.Contents("C:\data\input.json")),
    // Convert the JSON array into a table
    ConvertedToTable = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    // Expand all record fields into columns
    ExpandedColumns = Table.ExpandRecordColumn(ConvertedToTable, "Column1",
        {"name", "address", "tags"}, {"name", "address", "tags"}),
    // Expand nested address object
    ExpandedAddress = Table.ExpandRecordColumn(ExpandedColumns, "address",
        {"city", "zip"}, {"address.city", "address.zip"}),
    // Convert tags list to comma-separated string
    TransformedTags = Table.TransformColumns(ExpandedAddress,
        {{"tags", each Text.Combine(List.Transform(_, Text.From), ", "), type text}})
in
    TransformedTags

Complete Conversion Guide

What this tool does with your JSON

This tool takes a JSON array and writes each object as a row in an Excel spreadsheet. Each key in your JSON objects becomes a column header in the Excel file.

Everything runs in your browser, so your data never gets uploaded to any server. It's completely free with no signup required.

The tool handles JSON arrays with several thousand rows without issues in modern browsers. If you have a massive dataset (50,000+ rows), you might want to split it first.

Paste your JSON in the input box, click convert, and download your Excel file. That's it.

What happens to nested JSON fields

Nested objects get flattened using dot notation. For example, if your JSON has {"user": {"name": "Ali"}}, the Excel file will have a column called user.name with the value Ali in the cell.

Arrays inside objects become comma-separated values in a single cell. So {"skills": ["Python", "SQL"]} becomes a cell with the text "Python, SQL".

If you have deeply nested objects and you want them kept as a single cell (as a JSON string instead of flattened), use the JSON Flattener tool at /json-flattener first. Flatten your JSON the way you want it, then convert to Excel.

Quick example: {"address": {"city": "Portland", "zip": "97201"}} becomes two columns: address.city and address.zip. Each gets its own column in the spreadsheet.

This is the most common source of confusion. If your Excel file has weird column names with dots in them, this is why. It's flattening nested objects automatically.

What to do if your JSON isn't an array

The tool expects a top-level JSON array (starts with [). If your JSON is a single object (starts with {), wrap it in an array first: [ your object here ].

If your JSON is a deeply nested object with multiple levels, use the JSON Flattener tool first to turn it into a flat structure. Then convert the flattened result to Excel.

Most API responses are already arrays, so this usually isn't an issue. But if you get an error saying "Expected an array", this is the fix.

Converting back - Excel to JSON

This tool only goes one way: JSON to Excel. If you need to convert Excel back to JSON, you can use a quick Python script with pandas: df.to_json(orient='records').

There are also online Excel to JSON converters available, but we don't have one built into this site yet.