When you need CSV instead of TSV
TSV is what you get when you copy cells or run many command-line database clients, but CSV is what most upload forms, import wizards and libraries ask for. Common cases:
- Uploading a copied spreadsheet range to a CRM, an e-commerce admin or a mailing tool that only accepts
.csv. - Importing into PostgreSQL with
COPY ... CSV, or into pandas withread_csvdefaults. - Sending data to someone whose tooling expects commas.
The hard part is quoting: once commas become separators, every value that contains a comma, a quote or a line break must be escaped. This converter does that per RFC 4180.
How fields are quoted
Each tab-separated field becomes a comma-separated field. A field is wrapped in double quotes only when it needs to be:
- it contains a comma (
Tan, Aishabecomes"Tan, Aisha"), - it contains a double quote, which is doubled (
Ben "Benny" Okaforbecomes"Ben ""Benny"" Okafor"), - or it contains a line break.
All other fields are written bare. Numbers, dates and identifiers are copied character for character — 00123 keeps its zeros and 1520.50 keeps its trailing zero — because no type detection takes place. A row that consists of a single empty field is written as "" so CSV readers do not mistake it for a blank line.
Reading the TSV side
TSV itself has no official quoting, but spreadsheets quote cells that contain tabs or line breaks when you copy them. The converter honours that: a field that starts and ends with " is unwrapped and its "" pairs are decoded. If the quotes in your data are not balanced — a measurement like 27" monitor, for instance — every quote is treated as an ordinary character instead, with an info message. Either way the value lands intact in the CSV, quoted as needed.
Blank lines are dropped, CRLF and LF line endings are both accepted, and the output uses LF line endings throughout.
Options and round trips
There are no options. The first row is treated like every other row, so a header stays a header, and ragged rows keep their own number of fields. Use CSV to TSV for the opposite direction, or CSV to JSON if what you really want is structured data.
If Excel shows garbled accents after opening the CSV, the issue is encoding rather than delimiters; the CSV and Excel encoding guide explains the fix. The conversion here runs locally, which makes it fine for exports containing personal data.
Examples
Spreadsheet range with commas and quotes
The name with a comma is quoted, and the inner quotes in the nickname are doubled as RFC 4180 requires.
id name city
1 Tan, Aisha Singapore
2 Ben "Benny" Okafor Lagos
id,name,city
1,"Tan, Aisha",Singapore
2,"Ben ""Benny"" Okafor",Lagos
Database client output
Fields without special characters are written bare, the empty coupon stays an empty field and totals keep their written decimals.
order_id placed_at total coupon
ord_1 2026-09-14 08:21:05 129.90
ord_2 2026-09-14 09:02:44 79.00 SPRING10
order_id,placed_at,total,coupon
ord_1,2026-09-14 08:21:05,129.90,
ord_2,2026-09-14 09:02:44,79.00,SPRING10
Common errors and how to fix them
| Error | Cause | Fix |
|---|---|---|
Quotes are not balanced, so they were kept as literal text | An info note: a value contains a stray quote, such as an inch mark. | Nothing to do; the quote is preserved and properly escaped in the CSV. |
Fields shift into the wrong columns after import | The input was not really tab-separated: spaces were used for alignment, or a terminal converted tabs to spaces. | Copy the data again from the original source so the tabs are preserved, then convert. |
Accented characters appear garbled in ExcelExplained | Excel opened the UTF-8 CSV with a legacy code page. | Import via Data > From Text/CSV and choose UTF-8, or add a byte-order mark when saving. |
Frequently asked questions
Which fields get quotes?
Only fields containing a comma, a double quote or a line break. Everything else is written without quotes.
Are numbers or dates reformatted?
No. The converter does not interpret values, so leading zeros, trailing zeros and date formats come through unchanged.
Can I paste cells straight from Google Sheets?
Yes. Copied cells are tab-separated, and multi-line cells arrive quoted, which the converter understands.
Does the output use Windows line endings?
No, rows are separated by LF. Excel, databases and CSV libraries all accept that.