DashConvert
5 min read

CSV vs JSON vs Excel: which data format should you use when?

Three formats, three use cases, endless confusion. A practical guide to picking the right one for spreadsheets, APIs, and everything in between.

The one-line answer

Use CSV to move tabular data between systems. Use JSON when the data has nested structure or you're feeding it to code. Use Excel when a human needs to look at it or edit it.

Everything else is nuance.

CSV: the universal exchange format

CSV (Comma-Separated Values) is the simplest possible tabular format: one row per line, values separated by commas. Every tool on Earth can read it โ€” R, Python, SQL databases, Excel, Google Sheets, custom scripts, 30-year-old accounting software. That's its superpower.

Use CSV when:

  • Moving data between tools that don't natively integrate. Export from tool A as CSV, import to tool B.
  • The data is a flat table. Rows and columns, no nesting.
  • You need long-term archival. CSV files opened in 2050 will still work. Excel files might not.
  • Filesize matters. CSV has almost zero overhead compared to Excel or JSON.

Weaknesses:

  • No types. Everything is a string. "01234" (a zip code) becomes 1234 in whatever loads it if you're not careful.
  • No formatting. No bold, no colors, no formulas. It's raw data.
  • Awful for nested data. A "list of orders, each with a list of line items" cannot naturally be represented.
  • The delimiter problem. European CSVs often use semicolons (;) because commas are decimal points there. Files break silently across regions.

Convert to CSV with Excel to CSV or JSON to CSV.

JSON: for structured data and APIs

JSON (JavaScript Object Notation) is the format APIs speak. It supports nested structures โ€” objects inside objects, arrays inside arrays โ€” and preserves types (strings, numbers, booleans, null).

Use JSON when:

  • The data has nested structure. An order with a list of items, each with tax and discount, each with a supplier โ€” all naturally nests.
  • The consumer is code. Any web API, any modern programming language, most modern databases.
  • You need to preserve types. Numbers stay numbers, booleans stay booleans, null stays null.
  • The data will be re-serialized. JSON round-trips through code without losing structure.

Weaknesses:

  • Humans hate reading it. Anything over 50 lines becomes unreadable without a JSON viewer.
  • Excel can't natively open it. You have to convert first.
  • Verbose. Repeats field names on every record. A JSON version of a large CSV can be 2-3x the size.

Convert with CSV to JSON or JSON to CSV.

Excel (.xlsx): for humans

Excel is what non-technical people use to look at, sort, filter, and edit tabular data. It's massively more capable than either CSV or JSON โ€” formulas, formatting, pivot tables, charts, multiple sheets, cell types, data validation.

Use Excel when:

  • A human will be reading or editing the data. Business teams, accountants, sales, anyone non-engineering.
  • You need formulas. Sum, VLOOKUP, pivot tables โ€” all live in Excel.
  • You need multiple related tables in one file. Excel's multi-sheet support is unique.
  • The data will be printed or shown in a presentation. Formatting matters.

Weaknesses:

  • Not great for exchange between systems. Excel formats change; older tools can't read newer files.
  • File size. Even trivial data ends up in ~10 KB minimum overhead.
  • Types can be surprising. Excel silently converts things (leading zeros, dates, phone numbers) which corrupts data.
  • Only 1,048,576 rows per sheet. Not enough for big datasets.

Convert with CSV to Excel, or export the other way with Excel to CSV.

The gotchas that bite everyone

Excel's date interpretation. Excel decides everything that looks like a date IS a date and reformats it. Gene names in biology (SEPT7 โ†’ September 7), dates in different regional formats, part numbers that look like dates โ€” all get corrupted. Fix: import as text, or use CSV.

Leading zeros in ID fields. "007" becomes 7. Fix: format column as text before importing, or use JSON where types are preserved.

Commas inside data values. A CSV row that includes "Smith, John" needs quoting: "Smith, John",42. Most tools handle this correctly, but hand-edited CSVs often break.

Encoding. Non-ASCII characters (accented letters, emoji) look wrong if the file's encoding doesn't match what's opening it. Modern CSVs should be UTF-8. Old Excel outputs are often Windows-1252, which mangles anything outside English.

Practical conversions

  • Data lives in Excel, needs to feed an API: Excel to CSV, then CSV to JSON.
  • API returned JSON, need it in a spreadsheet: JSON to CSV, then CSV to Excel.
  • Need to email tabular data to a non-technical colleague: always send Excel. Send CSV only if they've specifically asked.
  • Need to load data into a database: CSV is almost always easiest. Some databases ingest JSON well; almost none ingest Excel directly.

Local, always

Data conversion is a place where privacy quietly matters. Customer lists, financial records, employee data, health data โ€” this is exactly the kind of data that shouldn't sit on a stranger's server for even a minute. Every conversion above (CSV to JSON, JSON to CSV, CSV to Excel, Excel to CSV) runs entirely in your browser on DashConvert. Row-limited only by your device's memory (millions of rows work fine on any modern laptop).

Tools mentioned in this post