One tool, two CSV shapes
This tool emits CSV in one of two shapes, chosen by the Shape option. Single row joins every item with your separator on one line - ideal for a single CSV row you want to paste into a cell or pass as a parameter. One per line emits every item as its own line - ideal when each item is really its own row and the CSV will be opened in Excel, Numbers, or imported into a SQL table.
Quoting follows RFC 4180. On Auto (the default), a value is quoted only when it needs to be: it contains the separator, a double quote, a tab, a pipe, or a semicolon. Embedded double quotes are escaped by doubling (`He said "hi"` becomes `"He said ""hi"""`). Always quotes every value even when unnecessary - useful when a downstream importer is strict. Never skips quoting entirely, even when a value would otherwise need it - only safe when you know your data never contains the separator. Newlines inside a cell are outside this tool's scope: the input is line-based, so each textarea line is one cell.
An optional header row can be prepended by toggling Add header row and filling in the header text. The header is emitted once at the top; it is not quoted or escaped, so type something safe (letters, digits, underscores, spaces).
How to use convert a list to csv
- 1Paste your list into the input panel, one value per line
- 2Pick the Separator - comma, semicolon, pipe, or tab
- 3Pick the Shape - `One per line` for a column or `Single row` to join everything onto one line
- 4Leave Quotes on Auto to quote only where needed, or force Always / Never
- 5Toggle Add header row to prepend a labelled header with the text you type
- 6Copy the CSV or download it as a .csv file from the output panel
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this converter actually does
Concrete behaviors - match them to your downstream consumer.
Choose the CSV shape
Shape: One per line produces a CSV column (one value per row). Shape: Single row joins all values with your separator onto a single line. Pick based on what the receiving system expects - a SQL import almost always wants one-per-line, an API parameter often wants a single row.
Four separator choices, no custom input
Comma (standard CSV), semicolon (European locales where comma is a decimal separator), pipe (ambiguity-proof for text with commas), or tab (TSV). The separator also affects quoting: a value containing the active separator is always quoted on Auto mode, even if it has no other special characters.
RFC 4180 quoting with three modes
Auto (default) quotes only when needed: the value contains the separator, a `"`, a tab, `|`, or `;`. Always quotes every value, which some strict importers require. Never emits values raw - safe only when your data provably contains none of those characters. Embedded double quotes are always escaped by doubling (`""`).
Optional labelled header row
Toggle Add header row and type the text you want in the first cell. The header is prepended as a single line - same shape as the rest of the output, but the header text is emitted literally without quoting or escaping. Keep header names alphanumeric + underscores for safety.
Runs in your browser
The conversion happens in JavaScript, locally. Nothing is sent to our servers - relevant when your list contains emails, internal IDs, PII, or anything else you would not paste into an online service.
Worked example
Default shape `One per line` and `Auto` quoting. Quoting kicks in on the 2nd and 3rd lines because they contain the separator / a double quote; embedded `"` is doubled.
Apples Pears, red Oranges "Valencia"
Apples "Pears, red" "Oranges ""Valencia"""
Settings reference
How each option shapes the output using the sample above.
| Setting | What it does | Effect on the sample |
|---|---|---|
| Separator: comma (default) | Character placed between values when Shape is Single row; also triggers Auto quoting when a value contains it | No visible change on the default One-per-line shape; on Single row the three items join with commas |
| Shape: One per line (default) | Emits every value on its own line (CSV column) | Three output lines, one per item - the default output above |
| Shape: Single row | Joins all values with the separator onto one line | `Apples,"Pears, red","Oranges ""Valencia"""` |
| Quotes: Auto | Adds quotes only when the value contains the separator, a quote, a tab, `|`, or `;` | `Apples` stays bare; `Pears, red` and `Oranges "Valencia"` get quoted |
| Quotes: Always | Wraps every value in double quotes even when unnecessary | All three output lines are quoted |
| Add header row: on, text "Fruit" | Prepends a header line before the data | First output line is `Fruit` |