JSON to Excel/CSV Converter

Convert JSON arrays to CSV format compatible with Excel, with nested object flattening and UTF-8 BOM support.

What is JSON to Excel/CSV Converter?

CSV (Comma-Separated Values) is the universal tabular data format that Microsoft Excel, Google Sheets, Apple Numbers, and every spreadsheet application can open natively. This converter transforms JSON arrays of objects into properly formatted CSV output, handling the complexities that make CSV tricky: nested objects are flattened with dot notation, special characters like quotes and commas are escaped per RFC 4180, and a UTF-8 BOM is prepended so Excel correctly recognizes non-ASCII characters. The tool supports three delimiters — comma for standard CSV, semicolon for European locales that use comma as a decimal separator, and tab for TSV format.

How to Use

  1. Paste your JSON array of objects into the input area — each object becomes a row in the CSV
  2. Choose your preferred delimiter (comma, semicolon, or tab) based on your regional Excel settings
  3. Toggle "Include headers" to control whether the first row contains column names
  4. Click "Convert" to generate the CSV output with proper escaping and encoding
  5. Copy the output or click "Download CSV" to save the file directly to your computer

Why Use This Tool?

Flattens nested JSON objects using dot notation (e.g., address.city) so no data is lost in conversion
Handles special CSV characters (quotes, commas, newlines) with RFC 4180-compliant escaping
Includes UTF-8 BOM for correct character encoding in Excel — no garbled accented characters
Supports multiple delimiters for different regional Excel settings and TSV workflows
Download directly as a .csv file for immediate use without copy-paste
Automatically discovers all headers across heterogeneous objects for consistent column structure

Tips & Best Practices

  • Use semicolon delimiter for European Excel versions that use comma as the decimal separator
  • The BOM (Byte Order Mark) ensures Excel correctly recognizes UTF-8 encoding without import dialogs
  • Nested objects are flattened with dot notation — {"address": {"city": "NYC"}} becomes the column "address.city"
  • Arrays of primitives are joined with commas; arrays of objects are serialized as JSON strings in a single cell
  • If objects in your array have different keys, all unique keys become columns with empty values for missing fields

Frequently Asked Questions

What is CSV format and when should I use it?

CSV (Comma-Separated Values) is a plain text format for tabular data where each row is on a new line and columns are separated by a delimiter. It is the most widely supported format for exchanging data between spreadsheet applications, databases, and programming languages. Use CSV when you need to open JSON data in Excel, import it into a database, or share it with non-technical stakeholders.

Why does my CSV look wrong in Excel?

If special characters appear garbled, the file may not be recognized as UTF-8. This tool adds a BOM (Byte Order Mark) at the beginning of the file to help Excel detect the encoding automatically. Also, try using semicolon as the delimiter if your regional settings use comma as the decimal separator — this is common in European locales.

How are nested objects handled in the CSV output?

Nested objects are flattened using dot notation. For example, {"address": {"city": "NYC", "zip": "10001"}} becomes two columns: "address.city" and "address.zip". This preserves all data while keeping the CSV flat and compatible with spreadsheet applications.

When should I NOT convert JSON to CSV?

Avoid CSV conversion when your JSON has deeply nested structures (more than 2-3 levels), contains arrays of varying lengths, or includes binary data. CSV works best for flat, tabular data. For complex nested structures, consider converting to a Markdown table, YAML, or keeping the JSON format.

What happens with arrays in the JSON data?

Arrays of primitive values (strings, numbers, booleans) are joined with commas into a single cell. Arrays of objects are serialized as JSON strings within the cell. You can further process these in your spreadsheet application using text-to-columns or JSON parsing functions.

Is my data sent to a server?

No. All conversion happens entirely in your browser using client-side JavaScript. Your JSON data never leaves your device, making this tool safe for use with sensitive business data, personal information, or proprietary datasets.

Real-world Examples

Employee Records to Excel

Convert a JSON array of employee records to CSV for analysis in Excel or Google Sheets.

Input
[{"name": "Alice", "department": "Engineering", "salary": 95000, "address": {"city": "NYC"}}, {"name": "Bob", "department": "Marketing", "salary": 82000, "address": {"city": "LA"}}]
Output
address.city,department,name,salary
NYC,Engineering,Alice,95000
LA,Marketing,Bob,82000

API Response to Spreadsheet

Flatten a paginated API response with nested fields into a flat CSV for reporting.

Input
[{"id": 1, "user": {"name": "Carol", "email": "carol@test.com"}, "status": "active"}, {"id": 2, "user": {"name": "Dave", "email": "dave@test.com"}, "status": "inactive"}]
Output
id,status,user.email,user.name
1,active,carol@test.com,Carol
2,inactive,dave@test.com,Dave

Related Tools