DataShift

Convert JSON to Excel Online

Got a JSON file from a developer? Turn it into a real Excel spreadsheet you can filter, sort, and share — no coding required.

JSON → Excel

Free JSON to Excel converter. Paste JSON and download a formatted .xlsx file instantly. Handles nested data that would break copy-paste. No uploads, no account — works in your browser.

100% local — no uploads
Input · JSON

Output will appear here

How to use the JSON → Excel

  1. Paste or upload your JSON data

    Paste text directly into the input box, drag and drop a file onto it, or click "Upload file" to browse. Conversion starts instantly on paste — no button click required.

  2. Configure options (optional)

    Open the Options panel to customise delimiter, headers, nested-object flattening, and more. Use the Field Selector to pick exactly which columns appear in the output.

  3. Copy or download your EXCEL

    Click Copy to grab the result, or Download to save the file. Everything runs locally in your browser — no data ever leaves your device.

Frequently Asked Questions

Is my data safe?
Yes. Every conversion runs entirely inside your browser. No data is ever transmitted to a server. The tool works offline once loaded.
What is the maximum file size?
There is no hard limit. Files under 1 MB convert instantly. Files 1–10 MB show a progress indicator. Files over 10 MB prompt a warning and run in a background thread to keep the browser responsive.
Why does my JSON fail to parse?
Common causes are trailing commas, single-quoted strings, unquoted keys, or missing closing brackets. The converter auto-repairs many of these and tells you exactly what it changed.
Can I convert multiple files at once?
The tool handles one file at a time. For bulk conversion, consider the csvjson CLI or API.

How it works

Step 1

What Excel does with nested data (and why it breaks)

If you've ever tried pasting JSON into Excel, you know what happens: you get one giant column of text, or the import wizard produces a table where nested objects are stuffed into a single cell as `[object Object]`. That's because Excel expects flat, tabular data — it has no concept of a JSON object hierarchy. This tool does the translation step Excel can't: it flattens the nested structure into columns before building the spreadsheet.

Step 2

Each JSON field becomes a column

Nested fields use dot-notation column headers (`customer.email`, `address.city`). They're still readable in Excel and sort/filter just like any other column. You don't need to know what dot-notation means — it just looks like a column name.

Step 3

The download is a real .xlsx file

Not a renamed CSV. A proper Excel workbook with a named sheet, auto-sized columns, and a header row formatted differently from the data rows. Open it in Excel, Google Sheets, or Numbers and it looks like something a person built.

Example

GitHub Issues API response

Input
[
  {
    "number": 42,
    "title": "Fix memory leak in auth middleware",
    "state": "open",
    "user": {
      "login": "sarah-dev",
      "type": "User"
    },
    "labels": [
      { "name": "bug" },
      { "name": "priority: high" }
    ],
    "comments": 7,
    "created_at": "2024-11-14T09:23:00Z"
  },
  {
    "number": 43,
    "title": "Add rate limiting to /api/export",
    "state": "closed",
    "user": {
      "login": "backend-team",
      "type": "Team"
    },
    "labels": [
      { "name": "enhancement" }
    ],
    "comments": 2,
    "created_at": "2024-11-15T14:01:00Z"
  }
]
Output
number | title                              | state  | user.login    | user.type | labels.0.name | labels.1.name   | comments | created_at
42     | Fix memory leak in auth middleware  | open   | sarah-dev     | User      | bug           | priority: high  | 7        | 2024-11-14T09:23:00Z
43     | Add rate limiting to /api/export    | closed | backend-team  | Team      | enhancement   |                 | 2        | 2024-11-15T14:01:00Z

The labels array (which varies in length per issue) is expanded into indexed columns: labels.0.name, labels.1.name. Rows with fewer labels just have empty cells. The result is a spreadsheet your project manager can sort by state, filter by label, or pivot by user — no JSON knowledge required.

Edge cases, handled

Arrays of objects

Each array element becomes its own row, with the parent fields repeated. An API response with 10 orders, each with 3 line items, produces 30 rows.

Numbers and dates

Numeric values are written as Excel numbers (not text), so you can SUM and AVERAGE them immediately. ISO date strings (2024-01-15) are converted to Excel date values so you can format and filter them by date.

Large datasets

Excel has a 1,048,576 row limit. If your JSON would produce more rows than that, the tool warns you and truncates — it doesn't silently drop data.

Frequently asked questions

I'm not a developer. Will this actually work for my file?

Yes. Paste your JSON into the input box (or drag the file in) and click Convert. You'll get a .xlsx file you can open directly in Excel or Google Sheets. You don't need to understand what JSON is or what any of the options mean — the defaults handle the common cases correctly.

The developer gave me a .json file. Can I upload it instead of pasting?

Yes. Drag the .json file into the input box or click the upload button. Files up to several gigabytes work fine — everything processes locally in your browser.

Will the numbers be real numbers in Excel, or will they be stored as text?

Real numbers. Values that are numeric in the JSON are written as Excel numeric cells, so you can use SUM, AVERAGE, and other formulas on them immediately. Values that are strings stay as strings.

Can I name the Excel sheet?

Yes. There's a "Sheet name" option in the settings panel. Default is "Sheet1".

My JSON has 200 fields. The spreadsheet is going to be very wide. Can I pick which columns to include?

Yes — the Field Selector panel shows all discovered columns as a tree. You can deselect entire groups (like `metadata.*` or `internal.*`) before downloading. The Excel file only includes the fields you chose.