Skip to content
ConvertMyStuff
Guide

JSON to CSV for Excel

Excel and Google Sheets import CSV easily, but JSON is hierarchical. Converting JSON to CSV flattens records into rows and columns suitable for spreadsheet analysis. This guide covers when and how to flatten nested structures, avoid encoding problems, and import cleanly into Excel without mangled dates, broken special characters, or misaligned columns.

Developer ToolsIncludes JSON to CSV Converter Pro

Try the tool

Use our free json to csv converter pro with this guide.

Why convert JSON to CSV for Excel

JSON is the standard format for API responses and NoSQL exports, but Excel works best with flat, tabular data. CSV (comma-separated values) is the simplest interchange format that Excel opens natively without add-ins or scripts.

Converting JSON to CSV lets you sort, filter, pivot, and chart data using familiar spreadsheet tools. It is especially useful when sharing data with non-developers who need to review records without running code.

The conversion is lossy when JSON contains deep nesting, mixed-type arrays, or recursive structures. Understanding these limits upfront saves time—you may need to preprocess or split complex JSON before conversion.

Flattening nested JSON objects

A nested object like {"user": {"name": "Alice", "email": "alice@example.com"}} becomes flat columns: user.name and user.email (or user_name and user_email depending on your converter settings). Each top-level key in a JSON array of objects becomes a column.

Arrays of objects typically expand to one row per object. An orders array inside a customer record may produce multiple rows with duplicated customer fields, or the converter may serialize the array as a JSON string in one cell—check your tool's behavior.

Deeply nested structures produce wide CSV files with dozens or hundreds of columns. Preview the output before importing large datasets. You may want to select only the fields you need rather than flattening everything.

Decision tree for nested JSON structures

Is your JSON a flat array of objects with primitive values only? Convert directly—no preprocessing needed. Example: [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}].

Does each record contain one level of nested objects? Flatten with dot notation. Example: {"id": 1, "address": {"city": "Portland", "state": "OR"}} becomes columns id, address.city, address.state.

Does each record contain arrays of objects (one-to-many relationships)? Decide: (a) create one row per child object with parent fields repeated, (b) serialize the array as JSON text in one cell, or (c) split into two CSV files (parent table and child table linked by ID).

Does your JSON contain arrays of arrays, recursive references, or mixed types? Preprocess with a script or use JSON formatter to inspect structure first. These patterns rarely convert cleanly to a single flat CSV without custom logic.

UTF-8 encoding and special characters

CSV files must use consistent character encoding. UTF-8 supports virtually all characters including accented letters, CJK characters, emoji, and currency symbols. Always export CSV as UTF-8.

On Windows, Excel sometimes misdetects UTF-8 files opened by double-clicking. UTF-8 with BOM (byte order mark) improves auto-detection. Without BOM, use Excel's Data → Get Data → From Text/CSV and explicitly select UTF-8 (65001) encoding.

Test with a known special character before converting large files. A row containing é, ñ, 中文, or € that displays correctly confirms your encoding pipeline works end to end.

Step-by-step Excel import

Method 1 (recommended for control): Open Excel → Data tab → Get Data → From File → From Text/CSV. Select your CSV file. In the preview dialog, verify delimiter (comma), encoding (UTF-8), and column data types. Set ID and zip code columns to Text before loading.

Method 2 (quick open): Double-click the CSV file. Excel uses regional default delimiter and auto-detects types—fast but risky for leading zeros, dates, and special characters. Fine for simple, English-only datasets.

Method 3 (Power Query for JSON): Data → Get Data → From File → From JSON. Power Query parses JSON natively and lets you expand nested columns in the query editor. Useful when you want to skip a separate conversion step and work directly from JSON.

After import, scan the first and last rows for truncation, misaligned columns, or #NUM! errors. These indicate delimiter conflicts (unescaped commas in data) or type coercion issues.

Common pitfalls and how to avoid them

Leading zeros stripped: US zip codes (02101), invoice numbers (00456), and phone fragments lose leading zeros when Excel treats them as numbers. Import as Text.

Date format confusion: ISO dates (2026-05-23) may display differently based on regional settings. Consider converting dates to a consistent format before CSV export, or set column type to Date during import.

Unescaped commas and quotes: Fields containing commas must be wrapped in double quotes in CSV. Fields containing double quotes must escape them as "". Quality converters handle this automatically; verify with fields that contain commas.

Empty vs null vs missing keys: JSON null, empty string, and absent keys may all appear as blank cells but mean different things. Document your convention or add a placeholder value for nulls if the distinction matters for analysis.

Choosing delimiters and quoting

Comma is the default CSV delimiter. If your data contains many commas (addresses, descriptions), tab-separated values (TSV) or pipe-delimited (|) formats reduce quoting complexity. Excel accepts all three via the Text Import Wizard.

Semicolon delimiters are common in European locales where comma is the decimal separator. Match delimiter to your Excel regional settings or specify explicitly during import.

Always enable quoting for fields that contain the delimiter character. Most JSON-to-CSV tools quote automatically when needed. Preview a few rows with known problematic values to confirm.

End-to-end workflow tips

Start small: convert 10–20 records, import into Excel, and verify column alignment, encoding, and data types before processing the full dataset.

Use JSON formatter to validate and pretty-print your source JSON before conversion. Malformed JSON (trailing commas, single quotes, unquoted keys) causes silent errors or partial output.

For recurring conversions, save your Power Query steps or document your converter settings (flatten separator, array handling, null behavior). Consistency prevents surprises when the API schema changes.

Need a quick visual check without Excel? Convert CSV to HTML table for browser preview. This catches layout issues before sharing files with stakeholders.

Related tools

Frequently asked questions

Can Excel open JSON files directly?

Excel does not natively open JSON as a structured table. You need to convert JSON to CSV or use Power Query (Get Data → From JSON) in Excel 2016 and later. CSV conversion is the simplest path for flat or lightly nested data.

How do I handle nested JSON objects in CSV?

Flatten nested objects using dot notation (user.name, user.email) or underscore separators (user_name, user_email). Arrays of objects become multiple rows; arrays of primitives may become comma-separated values in a single cell or require separate handling.

Why are special characters broken in my CSV?

The file is likely not saved as UTF-8, or Excel opened it with the wrong encoding. Save CSV as UTF-8 with BOM for best Excel compatibility on Windows. Use Data → From Text/CSV in Excel to explicitly select UTF-8 encoding.

Why does Excel change my ID numbers?

Excel auto-converts long numeric strings to scientific notation and strips leading zeros. Import via Data → From Text/CSV and set affected columns to Text format before loading.

Last reviewed: 2026-05-23