What is a TSV file
What is a TSV file and how do you open one?
A TSV (tab-separated values) file is a plain-text table with 1 tab between fields and 1 record per line, registered with IANA as text/tab-separated-values. You can open .tsv and .tab files up to 1.5 GB in your browser with rows.page, free with no signup.
No file handy? Open CO2 emissions by country and year (50k rows, 14 MB).
What is a TSV file?
A TSV file stores a table as plain text, usually with a .tsv or .tab extension. Each line is a row, and a tab character separates each value from the next:
id country price
1 NL 20
2 US 35You often have TSV without saving a file: copying a range of cells in Excel or Google Sheets puts tab-separated text on the clipboard.
What are the TSV format rules?
The IANA registration for text/tab-separated-values is short:
- Each record is one line.
- Fields are separated by a tab character.
- A field can't contain a tab.
- The first line holds the field names, separated by tabs.
- Every record has the same number of fields.
Because a field can never contain the separator, the definition needs no quoting or escaping: every tab starts a new column. If a value does contain a tab, a reader that splits on tabs sees an extra field and the rest of the row shifts one column to the right. rows.page detects the tab delimiter and the header row automatically, so you don't set either.
TSV vs CSV: what is the difference?
| Property | TSV | CSV |
|---|---|---|
| Field separator | Tab | Comma |
| Extensions | .tsv, .tab | .csv |
| Media type | text/tab-separated-values (IANA) | text/csv (RFC 4180) |
| Separator inside a value | Not allowed | Allowed inside double quotes |
| Quoting | None | Double quotes, with a quote inside written as "" |
| Header row | Required by the IANA definition | Optional in RFC 4180 |
| Line break inside a value | Not possible: each record is one line | Allowed inside double quotes |
Tabs rarely appear in names, addresses or product descriptions, while commas often do, so TSV sidesteps most quoting problems. CSV handles those values by wrapping them in double quotes, as RFC 4180 describes.
How do you open a TSV file?
rows.page
- Drop a
.tsvor.tabfile on rows.page. Tab-separated data saved as.txtor.csvworks too. - Or click Paste data and paste cells copied from Excel or Google Sheets; they open as a table.
- For a public file, put its URL after
rows.page/, for examplehttps://rows.page/https://example.com/data.tsv.
DuckDB-WASM reads the file in your browser, and nothing is uploaded unless you press Share. A tab holds up to 1.5 GB; a bigger TSV loads partially with the note "Loaded the first N rows: the file is X, more than the browser can hold." A TSV that is not valid UTF-8 is read as Latin-1, but any byte from 0x80 to 0x9F, such as a Windows-1252 euro sign or curly quote, stops it from opening with "Couldn't open this data"; re-save the file as UTF-8.
The Columns panel shows each column's type, distinct count, share of empty values, min and max, and a histogram or the top 10 values. Filter with country:NL or price:>20, or run SQL against the table data. rows.page doesn't edit cells or let you override the detected delimiter.
Excel
Go to Data > From Text/CSV, pick the file and choose Tab as the delimiter. Excel keeps 15 significant digits, so longer numeric IDs lose digits unless you import that column as Text.
Google Sheets
Go to File > Import, upload the file and set the separator type to Tab. A spreadsheet holds up to 20 million cells or 100 MB.
How do you convert TSV to CSV?
- Open the TSV file on rows.page.
- Optionally filter, sort, hide columns or run SQL; Export always writes the current view.
- Open Export and pick CSV.
You get a comma-delimited UTF-8 file with a header row and no BOM. Cells that start with =, +, -, @, a tab or a carriage return get a leading apostrophe so spreadsheets don't run them as formulas. Filtered views export every matching row, SQL results up to 1,000,000 rows, and there is no option to pick another delimiter, encoding or BOM.
On the command line, DuckDB does the same conversion and quotes any value that contains a comma:
COPY (SELECT * FROM read_csv('data.tsv', delim = '\t')) TO 'data.csv' (HEADER, DELIMITER ',');rows.page limits and prices
| What | Limit or price |
|---|---|
| Open a file in your browser | Files up to 1.5 GB, $0, no account, nothing uploaded |
| Share a link without an account | $0, files up to 100 MB, link deleted 7 days after creation |
| Free account | $0, 10 datasets kept, last 3 versions |
| Pro | $12/month, 100 datasets, files up to 500 MB, private links |
| Max | $39/month, 1,000 datasets, files up to 2 GB, private links |
Questions
What is the difference between .tsv and .tab files?
None in content: both are extensions for tab-separated values. rows.page opens both as TSV and also detects tabs inside .txt and .csv files.
Why do copied spreadsheet cells paste as tab-separated text?
Excel and Google Sheets put a copied range on the clipboard as tab-separated text, one row per line. Click Paste data on rows.page and those cells open as a table.
How big a TSV file can I open in rows.page?
Up to 1.5 GB per browser tab, with no row limit; the grid loads 100 rows at a time as you scroll. A bigger file loads partially with the note "Loaded the first N rows: the file is X, more than the browser can hold."
How do I share a TSV file with a link?
Press Share in the explorer or run curl -T data.tsv https://rows.page to get a https://rows.page/<id> link. Without an account you get 100 MB per request, 50 pushes and 1 GB per IP address per UTC day, and links expire after 7 days; signed in, Free keeps 10 datasets, Pro ($12 per month) 100 and Max ($39 per month) 1,000.
Can I get the average or median of a TSV column?
The Columns panel shows type, distinct count, empty share, min, max and a histogram, but no mean, median or standard deviation. Run SQL such as SELECT avg(price), median(price) FROM data, or FROM (SUMMARIZE data) for every column at once.