Export JSON to Excel — open straight in XLSX

Export JSON arrays into Excel-ready output instantly. Open the result directly in Excel, Google Sheets, or Numbers — no Python, no signup.

Paste your JSON → Get results instantly (no signup)

⚡ Instant resultsNo signupRuns in your browser
Try examples:

Convert this JSON to CSV.

[
{
"name": "Alice",
"age": 30,
"city": "New York"
},
{
"name": "Bob",
"age": 25,
"city": "London"
}
]
Output
1name,age,city
2Alice,30,New York
3Bob,25,London

Love the result?

Use this exact pipeline in your app, backend, or LLM workflow.

No setup needed. Works with curl, Node, Python.

Uses example data. For edited input, copy from the playground.

Read integration guide

Works with:

  • Excel (.xlsx via .csv import)
  • Google Sheets
  • Apple Numbers
  • Power BI and Tableau
  • Finance and ops workflows

Example: input → output

Excel is where most non-engineers live. When an API response, a database export, or an event log eventually has to land in front of finance, ops, or a vendor analyst, the destination is almost always a spreadsheet. This page is the JSON-to-spreadsheet on-ramp: paste your JSON, get output that opens cleanly in Excel, Google Sheets, Numbers, or any BI tool.

How the Excel pipeline works here

The tool produces RFC 4180 CSV with a header row and double-quote escaping. Excel imports CSV natively — double-click the file, or use Data → From Text in older versions. Google Sheets does the same on import. The result is a worksheet with one row per JSON record and one column per field, ready for filters, pivot tables, and charts.

If you need a true .xlsx workbook with formatting, multiple sheets, or formulas, save the CSV first and use Excel's "Save As" to convert. For a one-time conversion, that takes ten seconds and avoids needing yet another conversion library.

Real workflows

  • Finance reports — convert a billing API export into a worksheet for the finance team.
  • Ops dashboards — feed event logs into a BI tool that consumes spreadsheets.
  • Bug repros for non-engineers — share a sample payload as a sortable table.
  • Vendor reconciliation — diff a vendor's monthly export against your own records inside a familiar spreadsheet UI.
  • Product analytics ad-hoc work — drop a session log into a pivot table and slice by user.

Importing into Excel cleanly

Excel has a few quirks worth knowing about:

  • Encoding — save the CSV as UTF-8 with a BOM if you have non-ASCII characters. Without the BOM, Excel on Windows often misreads accented characters.
  • Leading zeros — IDs like 007 are interpreted as the number 7 by default. Either prefix with an apostrophe in the source data, or use Excel's "Import Text" wizard and mark the column as Text.
  • Date formats — ISO 8601 timestamps (2026-05-04T10:00:00Z) round-trip cleanly; less-standard formats may auto-coerce to the local locale's date format.
  • Long numbers — anything over 15 significant digits loses precision in Excel's default Number type. Force the column to Text for IDs and timestamps in milliseconds.

Issues that bite first-timers

  • Nested objects stringify into one cell. Use the JSON to CSV converter variant — same engine — and pre-flatten the JSON with Flatten JSON so each nested path becomes its own column.
  • Inconsistent records produce ragged columns where some rows have empty cells. Run Clean JSON first to normalize the shape.
  • Arrays inside fields — Excel cells can't naturally hold arrays. Either flatten them by index or join into a delimited string before exporting.

Why this beats a Python script

  • No setup. Paste, click, save.
  • No upload. Your JSON never leaves the browser.
  • Pipeline-aware: pair the conversion with Extract Fields from JSON to trim columns before they hit the spreadsheet.

For full programmatic access — running this conversion as part of a job, a webhook, or a scheduled export — the same engine is available via the REST API.

Frequently asked questions

Does this produce a native .xlsx file?+

No — the output is RFC 4180 CSV. Excel imports CSV directly (double-click or Data → From Text). For a true .xlsx workbook, open the CSV in Excel and use Save As → Excel Workbook.

How do I import the result into Excel cleanly?+

On modern Excel, double-clicking the .csv usually works. For non-ASCII characters, save the CSV with a UTF-8 BOM. For columns with leading-zero IDs or long numeric strings, use Excel's Text Import Wizard and mark those columns as Text to prevent coercion.

What if my JSON has nested objects?+

Pre-flatten the JSON with the Flatten JSON tool first. That way each nested path becomes its own column (`user.name`, `user.email`) instead of a stringified blob in a single cell.

Will this work for Google Sheets and Numbers?+

Yes. Both import CSV natively. Google Sheets handles UTF-8 by default; Numbers (Apple) sometimes needs the file extension to be `.csv` and the encoding set to UTF-8.

Is there a row limit?+

Excel itself has a 1,048,576-row limit per sheet. The conversion has no row limit beyond browser memory; for very large datasets, split the JSON before converting.

Related tools

Read more on the blog

Advanced usage (optional)

JSON to CSV

v1.0.0
Convert
arrayreversible

Description

JSON to CSV

Convert a JSON array of objects into CSV text. Supports field selection, nested object flattening, custom column mappings with expressions, and configurable delimiters.

How It Works

The utility takes an array of objects and produces CSV text. Each object becomes a row, and object keys become column headers.

Basic Conversion

All fields from the first object determine the columns. Values are quoted when they contain the delimiter character.

Column Selection

Specify an array of field names to include only certain columns in a specific order.

Nested Object Flattening

When enabled, nested objects are flattened using dot notation. Arrays within cells are joined with a configurable delimiter.

Custom Column Mapping

Define custom columns with expressions using {{fieldName}} syntax. Allows combining fields, renaming columns, and applying transformations.

Configuration

FieldTypeDefaultDescription
Delimiterenum,Field separator: ,, ;, \t (tab), or `\` (pipe)
Include HeadersbooleantrueAdd column names as the first row
Columnsjson[]JSON array of field names to include (empty = all fields)
Flatten Nested ObjectsbooleanfalseFlatten nested objects using dot notation keys (e.g., user.name)
Array Delimiterstring`\`Character to join array values within a single cell
Column Mappingcolumn-mapping[]Define custom column mappings with expressions. When configured, overrides Columns and Flatten settings.

Column Mapping Expressions

Custom mappings let you define exactly what each column contains:

Column: "Full Name"     Expression: "{{firstName}} {{lastName}}"
Column: "Age"           Expression: "{{age}}"
Column: "Location"      Expression: "{{city}}"

Use Cases

Data Export

  • Spreadsheet export: Convert JSON data to CSV for Excel or Google Sheets
  • Database import: Prepare CSV files for database bulk import
  • Report generation: Export filtered data as CSV reports

Data Transformation

  • Column selection: Export only relevant fields from large objects
  • Field combination: Merge first/last name into a single "Full Name" column
  • Nested flattening: Convert hierarchical data to flat CSV rows

Integration

  • Legacy systems: Convert JSON API data to CSV for legacy system import
  • Email tools: Prepare CSV contact lists for email marketing tools
  • Analytics platforms: Export data in CSV format for analytics tools

Configuration

NameTypeDefaultDescription
Delimiterenum,Character used to separate fields in the CSV output , ; \t |
Include HeadersbooleantrueAdd column names as the first row
Flatten Nested ObjectsbooleanfalseFlatten nested objects using dot notation keys (e.g. user.name)
Array Delimiterstring|Character to join array values within a single cell
Columnsjson[]JSON array of field names to include (empty = all fields)
Column Mapping (Advanced)column-mapping[]Define custom column mappings with expressions. When configured, overrides Columns and Flatten settings.

Examples

AI Prompt
Convert this JSON to CSV.
[
{
"name": "Alice",
"age": 30,
"city": "New York"
},
{
"name": "Bob",
"age": 25,
"city": "London"
}
]
Output
1name,age,city
2Alice,30,New York
3Bob,25,London
Config
Delimiter
,
Include Headers
ON
Flatten Nested Objects
OFF
Array Delimiter
|
Columns
1[]

API Usage

POST /api/v1/utilities/convert.json-to-csv
Example:
curl -X POST https://your-domain.com/api/v1/utilities/convert.json-to-csv \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inputs":{"primary":[{"name":"Alice","age":30,"city":"New York"},{"name":"Bob","age":25,"city":"London"}]},"config":{"delimiter":",","includeHeaders":true,"columns":[],"flattenNested":false,"arrayDelimiter":"|"}}'
Response
1name,age,city
2Alice,30,New York
3Bob,25,London