Skip to content

JSON to CSV for Excel

Get API rows into a spreadsheet without writing a script.

What this does

Excel does not eat nested JSON. This page is for a JSON array of flat-ish objects → CSV. Nested objects will flatten poorly; the copy here tells you when to flatten in code first. The converter is bidirectional; this landing is JSON→CSV for spreadsheet people.

Pretty print does not make a spreadsheet. CSV→JSON is the other direction. This URL matches the Excel intent.

Anyone who exported an API list and needs filters, pivot tables, or a finance teammate to look at it.

Spreadsheets are the interoperability layer of companies that will never run Jupyter. CSV is the peace treaty.

If the JSON is a tree (user.address.city), agree on a flatten rule before you convert, or you will invent column names you cannot round-trip.

Excel will happily turn `00123` into `123` and ISO dates into serial numbers. If those columns are identifiers, import CSV as text or prefix a tab. This converter will not stop Excel from being Excel.

Uneven objects — row 1 has `email`, row 2 does not — produce sparse columns. That is still useful for a first look. For a finance sign-off, normalize the JSON so every row has the same keys, then convert once.

When to use it

  • You have `[{...},{...}]` from an endpoint.
  • Someone asked for an .csv or Excel file.
  • The objects are mostly the same keys.

How to

  1. Paste a JSON array. Not a wrapped `{ data: [...] }` unless you extract the array.
  2. Convert to CSV. Check the header row.
  3. Open in Excel. Data → From text if encodings misbehave.
  4. Do not round-trip secrets. Sheets are forever in email.

Features

  • Array to rows. Each object becomes a CSV line.
  • Local. Customer lists never upload.
  • Copy or download. Paste into Sheets if you prefer.

Why it helps

  • Non-dev friendly. Finance can open CSV.
  • Quick audit. Spot duplicate IDs in a sheet.

Use cases

  • Admin exports. Users endpoint → spreadsheet.
  • One-off reports. Faster than Python for twenty rows.

Examples

  • Orders array. `[{"id":1,"total":9.5}]` → id,total rows.

Common mistakes

  • Converting a single nested object. You want an array of rows.
  • Expecting Excel to keep leading zeros in IDs. Prefix or import as text.

Tips

  • Normalize keys first if some rows omit fields.
  • UTF-8 CSV: Excel on Windows may want a BOM for accents — check if characters look wrong.

FAQ

Nested JSON?
CSV is flat. Flatten or pick leaf fields first. This converter will not magically make a star schema.
JSON Lines?
Wrap lines into an array or convert line by line in a script. This tool expects JSON, not NDJSON, unless you paste a valid array.