FormatterHQ

TSV to CSV Converter

Convert tab-separated data, such as cells copied from a spreadsheet, into a properly quoted CSV file with a comma, semicolon, pipe or tab separator.

Input TSV
Output CSV
Ready.

How to use the TSV to CSV Converter

  1. Paste tab-separated text, for example cells copied from Excel or Google Sheets, or upload a .tsv, .tab or .txt file.
  2. Choose the output Delimiter (comma by default) and tick Quote all fields if the receiving system expects every value in quotes.
  3. Untick Detect numbers & booleans to copy numbers exactly as written.
  4. Click Convert to CSV and copy or download the CSV file.

TSV to CSV with correct quoting

Tab-separated text rarely needs quotes, but CSV does as soon as a value contains a comma. This TSV to CSV converter reads the tabs, then writes standard CSV: fields containing the separator, a double quote or a line break are wrapped in quotes and inner quotes are doubled, so any CSV parser can read the file back.

Example

city	population	note
Boston, MA	675647	says "hub"
Austin, TX	961855
city,population,note
"Boston, MA",675647,"says ""hub"""
"Austin, TX",961855,

The city names gained quotes because of their commas, and the note shows the CSV way of escaping a quote character. The empty note on the last row stays an empty field.

Options

  • Delimiter – the output separator: comma, semicolon, pipe or tab. A semicolon suits spreadsheet apps in locales that write decimals with a comma; with it, Boston, MA no longer needs quotes.
  • Quote all fields – wraps every value, including headers and numbers, in double quotes. Some older import tools require this.
  • Detect numbers & booleans – rewrites numbers in canonical form, so 2.50 becomes 2.5. Untick it when the CSV should match the input character for character.
  • Include header row – ticked, the first line is treated as the header, with blank names filled in (column2) and duplicates renamed (name_2). Unticked, the header line is left out and only the data rows are written.
  • Nest dotted headers and Flatten nested objects – leave them at their defaults unless you want dotted columns merged into JSON text.

Pasting from a spreadsheet

Copying a range in a spreadsheet puts TSV on the clipboard, so this page doubles as a quick way to make a CSV from part of a sheet without saving the whole workbook. Cells containing line breaks arrive in quotes and are kept as single values. A double quote in the middle of a cell, as in 27" monitor, is read as an ordinary character and escaped correctly in the CSV.

Common problems

  • The CSV opens as one column in a spreadsheet. Your spreadsheet app probably expects semicolons because of its regional settings. Convert again with Semicolon as the delimiter.
  • An error names a record. A cell starts with a double quote but continues after the closing quote, for example "Pro" plan. Remove the leading quote or quote the whole cell and double the inner quotes.
  • Spaces around values. Leading and trailing spaces are part of the data and are kept. Trim them in the source if the target system does not expect them.

Related tools

For JSON instead of CSV, use TSV to JSON. The reverse conversion is CSV to TSV.

Privacy

No upload is needed: the tabs are turned into CSV inside your browser. Load URL and Save & Share are the only exceptions, since both go through our server.

Convert TSV to CSV in Python

Use the csv module on both sides: a reader with delimiter="\t" and a writer with the default comma. Replacing tabs with commas through str.replace looks simpler but breaks the data as soon as a field contains a comma, because nothing gets quoted; likes tea, not coffee would become two columns. The writer adds quotes where they are needed and doubles any quotation marks inside a field.

import csv
import io
import sys

data = 'name\tnote\nAnn\tlikes tea, not coffee\nBob\tsaid "hi"\n'

# for files: open(path, newline="", encoding="utf-8") for both input and output
reader = csv.reader(io.StringIO(data), delimiter="\t")
writer = csv.writer(sys.stdout, lineterminator="\n")
writer.writerows(reader)

For a quick conversion without a script, paste the tab-separated text into the converter above.

Frequently asked questions

Why are some values wrapped in quotes?
CSV requires quotes around values that contain the separator, a double quote or a line break. Values without those characters are left unquoted unless you tick Quote all fields.
How do I create a semicolon-separated CSV?
Choose Semicolon (;) as the Delimiter. This is the format many spreadsheet programs expect in regions that use a decimal comma.
Can I paste data from Google Sheets?
Yes. Copying cells from Google Sheets, Excel or LibreOffice produces tab-separated text, which this converter reads directly.
Will leading zeros be kept?
Yes. Values such as 00123 are not treated as numbers, so they are written unchanged. A spreadsheet app may still drop them when it opens the CSV; use CSV to Excel if that is a problem.

Last updated October 3, 2026

Related tools