A one-row TSV builder
This tool emits a single TSV row: every non-blank line in your input becomes one cell, and the cells are joined with actual tab characters (U+0009, not spaces). Pasting the output directly into a spreadsheet - Excel, Google Sheets, Numbers, LibreOffice - fills cells across a single row starting from the focused cell.
There is no quoting or escaping. TSV parsers accept commas, quotes, and most punctuation as literal characters because the cell delimiter is tab, not comma. What you cannot have in a cell is a literal tab (it would split the cell) or a newline (it would start a new row). The tool does not transform or reject those - clean them up in your input first if your data contains them.
There are no configuration options. If you need multi-row TSV output (each item on its own row), use the CSV tool with Shape set to One per line and Separator set to Tab. This tool is specifically for the single-row case.
How to use convert a list to a tsv row
- 1Paste your list into the input panel, one value per line
- 2Output is a single TSV row - every line joins with a tab character
- 3Copy the row and paste directly into any spreadsheet cell (cells fill across)
- 4Download saves as a .tsv file if you need it on disk
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this tool actually does
Fixed behaviors - no options, no configuration.
Single-row output
Every non-blank input line becomes one cell in a single TSV row. If you need each item on its own row, use the CSV tool with Tab separator and One-per-line shape instead.
Actual tab characters, not spaces
The separator is a real U+0009 tab. That is what spreadsheets expect when you paste into a cell - they use tabs to decide where one cell ends and the next begins. Spaces would land everything in a single cell.
No escaping, no quoting
Tab is rare in everyday text, so TSV does not need the elaborate quoting rules CSV has. Commas, double quotes, and punctuation go through verbatim. The rare gotcha: if your data contains literal tab characters or newlines, they will break the row structure. Clean them up first.
Blank lines dropped
Empty and whitespace-only input lines do not produce empty cells. They are filtered out before the row is built.
Runs in your browser
Nothing is sent anywhere. The join is a single `items.join("\t")` call client-side.
Worked example
Three input lines become three tab-separated cells on one row.
Apples Oranges Cherries
Apples Oranges Cherries
Behavior reference
No user-adjustable options. These are the fixed rules.
| Rule | What it does | Example |
|---|---|---|
| Row shape | Always single-row - every input line becomes one cell in the same row | Three input lines → one row with three cells |
| Separator | Real U+0009 tab character between cells | Pastes cleanly into spreadsheet cells |
| Escaping | None - cells are emitted verbatim; tabs and newlines in your data break the row | `a, b` stays `a, b`; a literal tab inside a cell would split it |
| Blank lines | Automatically dropped before the row is built | A trailing blank produces no extra empty cell |