ScreenshotNeo

BlogHow-to

How to Convert JSON to Excel: 10 Online Tools

Convert JSON to Excel with Power Query, browser tools, APIs, and automation. Learn how to flatten nested data, protect privacy, and choose XLSX output.

By the ScreenshotNeo team30 September 20269 min read

How to Convert JSON to Excel: 10 Online Tools

Short answer: Use Excel Power Query when you need repeatable transformations, nested-data cleanup, or refreshable connections. Choose a browser converter such as Aspose for a one-off upload and download without installing Excel. For recurring jobs, use an API or automation workflow. Before converting, inspect nested arrays, output format, privacy, retention, and authentication requirements.

JSON can represent records, arrays, nested objects, and inconsistent fields. Excel worksheets are two-dimensional tables. Conversion is therefore usually an import-and-shape process rather than a simple file rename. Flat arrays often become a table immediately; nested records and lists usually need expansion or separate worksheets.

1. Choose the right JSON-to-Excel method

Method Best for Input Repeatability Main limitation
Power Query from JSON Refreshable analysis and transformations Local JSON file High Excel edition and connector behavior vary
Power Query web connector JSON URLs and API responses URL or endpoint High Authentication and endpoint rules
Parse JSON column JSON stored as text in a worksheet Text column High Requires record expansion
Power Query Online Cloud dataflows and governed workbooks JSON source High Plan, tenant, gateway, and credentials
Excel for the web Supported Microsoft 365 browser plans JSON source Medium Feature availability differs by plan
Power Automate Desktop Repeatable desktop automation Files or API output High More setup than a one-off conversion
Aspose browser converter One-off upload and download Local JSON file Low Data is uploaded to a vendor
Aspose.Cells Cloud API Server-side recurring conversion JSON stream or file High API credentials and integration work
Aspose.Cells .NET Applications that already use .NET JSON file High Requires a .NET project and library
Python or Node.js script Custom pipelines and validation Files or API responses High You own schema handling and XLSX writing

2. Convert a local JSON file with Excel Power Query

Power Query is the strongest general-purpose option when the workbook will be refreshed. Microsoft documents the workflow as Data > Get Data > From File > From JSON. Power Query uses automatic table detection to flatten many JSON structures, after which you can transform and load the result.

Nested records and arrays often need separate related tables instead of one flattened sheet.
Nested records and arrays often need separate related tables instead of one flattened sheet.
  1. Open Excel and create or open a workbook.
  2. Select Data > Get Data > From File > From JSON.
  3. Choose the .json file.
  4. In the navigator or Power Query editor, inspect the detected list, record, or table.
  5. Use the expand buttons on Record and List values. Select only the fields you need.
  6. Rename columns, set data types, remove errors, and split or merge fields as required.
  7. Select Close & Load to put the result in a worksheet or data model.
  8. For later files with the same shape, use Refresh.

Example flat JSON

[{"id":101,"name":"Ada","active":true},{"id":102,"name":"Lin","active":false}]

This normally imports as three columns: id, name, and active. If the top level is an object such as {"data":[...]}, first open the data list and convert that list to a table.

Nested records and arrays

[{"id":101,"customer":{"name":"Ada","country":"UK"},"items":[{"sku":"A1","qty":2}]}]

Expand customer to create fields such as customer.name and customer.country. Expanding items creates one row per item and repeats the parent values. If you need one row per customer instead, keep the list as a separate query or aggregate it before loading. Do not assume every nested shape can become one clean table without a modeling decision.

3. Parse JSON that is already in an Excel column

If a worksheet contains JSON text rather than a file, load the range into Power Query. Select the text column, then choose Transform > Parse > JSON. Each cell becomes a structured Record. Expand the fields you want, set types, and load the transformed table back to Excel.

This is useful for API exports where one column contains a response body. Malformed text produces errors; filter or replace those rows before expanding. Keep the original text column until validation is complete so you can trace a bad record.

4. Import JSON from a URL or API

Use Data > Get Data > From Other Sources > From Web (the exact menu label varies by Excel edition). Enter the JSON URL, choose the appropriate authentication method, and transform the response in Power Query.

API imports need credentials, pagination, schema checks, and refresh validation.
API imports need credentials, pagination, schema checks, and refresh validation.

Plan for these cases:

  • Pagination: one endpoint response may contain only the first page. Build a query that follows the documented next-page link or loop parameters.
  • Authentication: anonymous, organizational, web API, and other credential modes expose different options. Never paste a secret into a public workbook.
  • Rate limits: refreshes can be rejected when an API limits requests. Cache or stage data when the provider permits it.
  • Changing schemas: new fields may appear while old fields disappear. Use explicit column selection and validation to detect changes.
  • JSON Lines: newline-delimited objects are not always accepted as one JSON document. Convert each line into a record before tabularizing.

5. Power Query Online and Excel for the web

Power Query Online supports JSON data sources when the required Microsoft 365 service, gateway, and credentials are available. Excel for the web also exposes Power Query data sources on supported plans. Availability depends on your tenant, license, and platform, so verify the connector in the environment where the workbook will run.

The transformation concepts are the same as desktop Excel: identify the top-level list, expand records, decide how to handle child arrays, assign types, and load the result. Test refresh under the account that will own the scheduled or shared workbook.

6. Automate with Power Automate Desktop

Power Automate Desktop is an automation route for teams that receive JSON files, extract keys, loop through records, write rows to Excel, and save a workbook. Treat it as a workflow rather than a quick converter. Design explicit steps for file arrival, JSON parsing, array iteration, column mapping, error logging, and workbook locking.

  1. Watch a folder or trigger the flow from an input event.
  2. Read the JSON file as text and parse it.
  3. Extract the top-level array and the fields required for each row.
  4. Loop through records and write values to an Excel table.
  5. Save the workbook and move the source file to a processed or failed folder.

7. Convert JSON online with Aspose

For a one-off conversion, an online JSON-to-Excel converter can be faster than building a query. Aspose’s browser workflow is upload, choose table or output options, convert, and download. Aspose states that uploaded files are deleted from its servers after 24 hours; check the current policy before sending confidential data.

Browser conversion is a poor fit when you need refreshes, API authentication, repeatable field mapping, or audit logs. It is convenient for a small, non-sensitive file whose structure is already close to a table.

8. Use an API or application library

Aspose.Cells Cloud API

A cloud API suits a service that receives JSON repeatedly and must produce XLSX files without a desktop session. The documented options include worksheet position and output path. Add your own checks for malformed JSON, schema drift, array handling, retries, and output validation.

Aspose.Cells for .NET

In .NET, the documented pattern loads JSON into a workbook and saves an XLSX file. Options include multiple worksheets and treating arrays as tables.

Workbook wb = new Workbook("sample.json");
wb.Save("sample_out.xlsx");

Use multiple worksheets when child arrays have their own grain. Use an array-as-table option when the input is a list of records and you want tabular output.

Python example for a controlled pipeline

The following script uses a common dataframe workflow. It assumes the top level is a list of flat records; nested data should be normalized deliberately before export.

import json
import pandas as pd

with open("input.json", encoding="utf-8") as f:
    data = json.load(f)

if not isinstance(data, list):
    data = data["data"]

df = pd.json_normalize(data)
df.to_excel("output.xlsx", index=False)

Node.js example

With the xlsx package installed, this script reads an array, converts records to a worksheet, and writes an XLSX file.

const fs = require('fs');
const XLSX = require('xlsx');

const parsed = JSON.parse(fs.readFileSync('input.json', 'utf8'));
const rows = Array.isArray(parsed) ? parsed : parsed.data;
const workbook = XLSX.utils.book_new();
const sheet = XLSX.utils.json_to_sheet(rows);
XLSX.utils.book_append_sheet(workbook, sheet, 'Data');
XLSX.writeFile(workbook, 'output.xlsx');

9. Preserve structure when one sheet is not enough

Excel rows have a single grain. A customer record with five order items cannot be represented correctly by simply repeating or concatenating values without deciding what a row means. Use a parent sheet and a child sheet keyed by an ID, or keep the child array in Power Query until a report-specific expansion is required.

Choose XLSX when you need modern worksheets, multiple tabs, and better type support. Choose XLS only for compatibility with an older system that explicitly requires it. Confirm date, boolean, null, currency, and long-number handling after export.

10. Troubleshooting checklist

Symptom Likely cause Fix
“Invalid JSON” Trailing comma, unescaped quote, or truncated response Validate the source and inspect the failing character or line.
Only one column appears Records remain nested in a List or Record value Open the list, convert it to a table, then expand records.
Rows multiply unexpectedly A child array was expanded Keep it as a related table or aggregate it intentionally.
Some fields are missing Records have inconsistent keys Use a stable field list and fill absent values explicitly.
Refresh returns 401 or 403 Expired or incorrect credentials Update the data-source credential and confirm required scopes.
Web import works once, then fails Rate limit, token expiry, or changing endpoint response Review API limits, refresh credentials, and log the raw response.
Numbers become text Locale or mixed JSON types Set the column type after expansion and normalize source values.
Dates are wrong Timezone or ambiguous date strings Keep ISO 8601 strings until you choose the intended timezone.
Browser upload is rejected File size, unsupported shape, or service limit Split the file, simplify nested arrays, or use a local/API workflow.

11. Performance, reliability, privacy, and cost

  • Performance: select only required fields, filter early, and avoid expanding large child arrays until necessary. Paginate API imports instead of loading an unbounded response.
  • Reliability: retain the source JSON, record refresh time and query version, and validate row counts and required columns before publishing a workbook.
  • Privacy: local Power Query keeps processing in your environment. Browser and cloud converters upload data, so review retention, deletion, access controls, and contractual terms. Aspose states a 24-hour deletion period for its browser converter.
  • Cost: Excel licensing, automation capacity, API calls, and cloud storage can all affect total cost. A free browser conversion may still be unsuitable if manual cleanup is repeated every day.

12. Or skip the browser setup

ScreenshotNeo is not a JSON-to-XLSX converter. It is useful when the deliverable is a visual record of an API response, documentation page, dashboard, or generated report that you want to archive beside the spreadsheet. One GET request returns a PNG, JPEG, WebP, or PDF. Cookie and consent banners, newsletter popups, and chat widgets are removed before the shot; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. An MCP server lets AI agents take screenshots, and every response reports the page verdict and billing status.

See the ScreenshotNeo API documentation for all options. A minimal request is:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

There are 1,000 screenshots per month free with no card. Paid plans start at $5 for 3,000 shots, and every feature is available on every plan. Create a free ScreenshotNeo account.

FAQ

Can Excel open JSON directly?

Yes. Use Power Query’s JSON connector, then review and transform the detected structure before loading it to a worksheet.

Can Excel flatten nested JSON?

Often. Expand Record and List values, but choose a table design when arrays represent child entities.

What is the best online converter?

For repeatable work, Power Query is usually the best fit. For a one-off non-sensitive upload, a browser converter such as Aspose is simpler.

How do I convert an API response into an Excel table?

Use the web connector, authenticate, handle pagination, expand the response list, set data types, and load the query.

Should I use CSV instead of XLSX?

CSV is useful for a single flat table. XLSX is better when you need multiple sheets, formatting, or workbook features.