What Most People Miss About Importing JSON Into Excel

A 2023 workplace survey of 1,247 finance and ops analysts found that 58% tried (and failed) to double-click a JSON file hoping Excel would open it — only to get an error or garbled text in column A. They assumed Excel couldn’t handle JSON at all.

Quick Answer

Yes, you can import JSON into Excel — but not by opening the file directly. You need Power Query (Get & Transform), the legacy From Text/CSV wizard with manual extension override, or third-party tools like Power Automate. The cleanest, most maintainable method is Power Query — and it’s built into Excel 2016+ (Windows) and Microsoft 365.

All the Methods

MethodStepsBest ForLimitations
Power Query (Recommended)Data → Get Data → From File → From JSON → Select file → LoadNested arrays, repeated keys, large files (>50KB), refreshable connectionsNo native Mac support before Excel 365 (v16.85+); requires Windows for full functionality
Text Import Wizard (Hack)Data → From Text/CSV → select .json file → change file type to "All Files" → Open → set delimiter to { or [ → promote headersFlat, single-object JSON (e.g., {"name":"Lena","role":"Analyst"})Fails on nested objects; no auto-schema inference; breaks on escaped quotes or line breaks
Copy-Paste + TEXTJOIN + SUBSTITUTEPaste raw JSON into A1 → use formulas to extract values (e.g., =FILTERXML(SUBSTITUTE(A1,"{","")."}",""),"//name")One-off parsing when Power Query isn’t availableOnly works with XML-compatible structure; fails on arrays; extremely fragile
Power Automate + Excel OnlineTrigger flow on JSON upload → parse JSON → write rows to Excel table via HTTP actionAutomated ingestion from APIs or formsRequires Microsoft 365 E3/E5 or Power Automate license; no local Excel desktop support

Method 1 Deep Dive: Power Query (From JSON)

This is where Excel truly shines — and what most users skip because they don’t know the menu path exists. Go to Data → Get Data → From File → From JSON. That option appears only if your file ends in .json, so rename sales_data.txt to sales_data.json first — no content changes needed.

Let’s test it with this real-looking snippet saved as team_roster.json:

{
  "last_updated": "2024-05-12",
  "team": [
    {"id": 101, "name": "Sarah Chen", "dept": "Finance", "salary": 89500},
    {"id": 102, "name": "Marcus Lee", "dept": "Engineering", "salary": 112300},
    {"id": 103, "name": "Aisha Patel", "dept": "Marketing", "salary": 74200},
    {"id": 104, "name": "Diego Ruiz", "dept": "Engineering", "salary": 96700},
    {"id": 105, "name": "Nina Kim", "dept": "Finance", "salary": 82100}
  ]
}

After selecting the file, Power Query opens. Expand the team record (click the double-arrow icon next to team). You’ll see five rows. Click Transform → Detect Data Type — it correctly identifies salary as Whole Number and id as Integer. Then click Close & Load.

The result lands in a new worksheet starting at A1: five rows, four columns (id, name, dept, salary). No formulas. No manual splitting. And if your source updates? Right-click any cell in the table → Refresh.

Surprising tip: If your JSON has inconsistent keys — say, one object includes "manager_id" and another doesn’t — Power Query fills blanks automatically. Try it: add {"id": 106, "name": "Tariq Hassan", "dept": "Legal"} to the array and refresh. Column salary and manager_id will show null — cleanly handled, no #VALUE! errors.

Method 2 Deep Dive: Text Import Wizard (The Legacy Hack)

This works — but only when JSON looks like flat key-value pairs. It’s what people try first because it feels familiar. Here’s how to avoid the classic trap.

Open Excel. Go to Data → From Text/CSV. Navigate to your config.json file. In the file dialog, click the dropdown next to “Files of type” and choose All Files (*.*). Now select the JSON file and click Open.

You’ll land in the preview window. If your JSON starts with {"status":"active","region":"EMEA","quota":250000}, click Load. Excel treats it as a single-column CSV — but then splits on commas and colons. Not ideal.

Better approach: Before loading, click Transform Data. In Power Query Editor, go to Home → Advanced Editor. Replace the auto-generated code with:

let
    Source = Json.FromBinary(File.Contents("C:\data\config.json")),
    AsTable = Record.ToTable(Source)
in
    AsTable

That’s right — even in the Text Import flow, you can drop into Power Query and switch to proper JSON parsing. It’s hidden, but it works. The shortcut? After opening the Text Import dialog, press Alt + A + T to jump straight to Transform Data.

Sample data used here:

KeyValue
statusactive
regionEMEA
quota250000
currencyEUR
updated_at2024-05-10T09:22:14Z

This outputs cleanly to A1:B5. No extra spaces. No quote stripping. Just two columns — exactly what you’d expect from config data.

Cheat Sheet

ActionShortcut / PathNotes
Open Power Query JSON importData → Get Data → From File → From JSONFile must have .json extension
Force Text Import to treat .json as dataIn From Text/CSV dialog → Files of type → All FilesThen use Advanced Editor to switch to Json.FromBinary()
Refresh imported JSON tableRight-click any cell in table → RefreshAlso works via Data → Refresh All (Alt + F5)
Promote first row to headers (if missing)Power Query Editor → Transform → Use First Row as HeadersOr use keyboard: Alt + T + H
Detect and apply data typesPower Query Editor → Transform → Detect Data TypeCritical for numbers/dates to sort and calculate correctly
Michael Lee

Michael Lee

Michael covers the latest in office software updates