CSV vs TSV vs Excel: Choosing a Format for Data Exchange
Last updated 19 August 2026 · about 5 minutes to read
Three ways to hand a table to someone else. What each keeps, what each loses, and which one to pick when you do not know what will open it.
The question is not which format is best. It is which format survives the trip to a recipient whose tooling you do not control.
CSV
Reads everywhere. Every database, every analytics tool, every spreadsheet, every programming language with a standard library. That is its entire advantage and it is a large one.
Its weaknesses are all about ambiguity. The delimiter is not recorded in the file. The encoding is not recorded in the file. There is no type information. Values containing commas, quotes or newlines need quoting, and the rules for that are in RFC 4180, which not every producer follows.
Pick it when you do not know what will open the file, which is most of the time.
TSV
The same file with tabs instead of commas. The tab almost never appears inside a value, so quoting is rarely needed and the file is far less ambiguous than a CSV.
It is also what your clipboard holds when you copy cells out of a spreadsheet, which means a TSV pastes straight into Excel or Sheets and fills the cells with no import dialog at all.
The catch is that a tab is invisible. A file that has lost its tabs, because it went through something that converted them to spaces, looks unchanged and is broken. Email clients and chat apps do this.
Pick it when the recipient will paste rather than open, or when your values are full of commas.
Excel
Keeps types, so a number stays a number and a date stays a date rather than being re-guessed on the other end. Holds multiple sheets. Records column widths so the file opens readable. Has an unambiguous encoding, because .xlsx is XML inside a zip and XML declares its encoding.
Against that: it is a proprietary format that needs a library to read, the files are much larger, and diffing two versions in source control tells you nothing because the content is compressed.
Pick it when a person will open the file rather than a program, and when the types matter enough to be worth the weight.
A short decision rule
- Going into a program you do not control: CSV.
- Going to a person who will paste it into a spreadsheet: TSV.
- Going to a person who will open it and read it: Excel.
- Going into source control: CSV, because it diffs line by line.
- Going through email or chat: not TSV, because the tabs may not survive.
Whichever you pick
Use ISO dates. yyyy-mm-dd is unambiguous in every locale and sorts correctly as text. Every other format is ambiguous somewhere: 03/04/2026 is two different days depending on which side of the Atlantic reads it.
Say what the encoding is. If you are sending a CSV with anything outside plain ASCII in it, either add a UTF-8 byte order mark or tell the recipient in the email. Most encoding problems are a missing sentence rather than a technical failure.