Xerobit

CSV to List Converter

Paste CSV data and get a clean text list with one row per line. The parser follows RFC 4180: it respects quoted fields, doubled quotes, embedded commas, and newlines. Choose your delimiter, skip the header row, and pick how rows are separated in the output. Convert CSV to list format instantly; everything runs in your browser with no data uploaded.

Supports quoted fields, embedded commas, and line breaks per RFC 4180.

List output

a, b, c
d, e, f
  • Rows in output
    2
  • Columns per row
    3

How to use the csv to list converter

  1. Paste your CSV data into the input area.
  2. Choose the field delimiter (comma, semicolon, tab, pipe, or custom).
  3. Tick Skip first row if your CSV has a header you don't want in the list.
  4. Pick how rows should be separated in the output (newline, semicolon, comma, or custom).
  5. Copy the generated list from the output box. Convert CSV to list with one click.

How the parser works

The tool implements a strict RFC 4180 parser written in TypeScript with no dependencies. It scans the input character by character, tracking whether it is inside a quoted field. When inside quotes, commas, newlines, and the delimiter itself are treated as literal characters. Two consecutive double quotes ("") represent a single literal quote. Fields may span multiple lines. The parser returns an array of rows, each an array of field strings.

After parsing, the tool optionally drops the first row (header). Then each remaining row is joined with , (comma + space) to form a single line, and those lines are joined with the chosen row separator. If rows have different column counts, a warning note is added to the result. Quoting follows RFC 4180.

Common use cases

Extract a column for a script: paste a CSV, skip the header, and copy the first column values as a newline-separated list for a shell loop or SQL IN clause.

Clean messy exports: some systems export CSV with semicolons or tabs. Set the delimiter accordingly and get a uniform list.

Prepare data for markup: convert a CSV of tags or categories into a comma-separated list for a front-matter field or a select element.

Debug ragged rows: the tool reports inconsistent column counts so you can fix the source before importing elsewhere.

RFC 4180 quick reference

The parser follows these rules:

  • Fields containing the delimiter, double quotes, or line breaks must be enclosed in double quotes.
  • A double quote inside a quoted field is escaped by doubling it: "He said ""Hello""" → He said "Hello".
  • Line breaks are CRLF (\r\n) but the parser also accepts bare \n or \r.
  • The last record may or may not end with a line break.
  • Spaces outside quotes are part of the field; the parser does not trim them.

If your data uses a different escaping scheme (backslash, single quotes), this tool will not parse it correctly. Pre-process the data first.

Ragged rows and how to fix them

A ragged row has a different number of fields than the first data row. Common causes:

  • Missing trailing empty fields (the row simply has fewer fields; nothing is padded).
  • An unclosed quoted field that swallows the next delimiter or newline.
  • A stray delimiter inside an unquoted field.

The tool reports the row numbers and field counts of ragged rows. Open the CSV in a text editor, go to those lines, and check for missing quotes or extra delimiters.

Worked examples

ExampleInputResult
Simple comma CSVCSV input: apple,red,fruit / banana,yellow,fruit / cherry,red,fruit; Field delimiter: ,; Skip first row (header): no; Row separator in output: \nRows in output: 3; Columns per row: 3
With header rowCSV input: Name,Color,Type / apple,red,fruit / banana,yellow,fruit; Field delimiter: ,; Skip first row (header): yes; Row separator in output: \nRows in output: 2; Columns per row: 3
Quoted fields with commasCSV input: "Doe, John",30,Engineer / "Smith, Jane",25,Designer; Field delimiter: ,; Skip first row (header): no; Row separator in output: \nRows in output: 2; Columns per row: 3
Semicolon delimiter, custom output separatorCSV input: a;b;c / d;e;f; Field delimiter: ;; Skip first row (header): no; Row separator in output: custom; Custom row separator: | Rows in output: 2; Columns per row: 3

FAQ

Does this tool send my data to a server?

No. All parsing happens in your browser. Nothing is uploaded or stored.

Can I use a delimiter longer than one character?

Yes. Choose Custom and enter any string (e.g. :: or ||). The parser treats it as a literal sequence.

Why does my output have extra blank lines?

Blank lines in the CSV become rows with a single empty field. If you skip the header and the first data row is blank, you'll see an empty line. Remove blank lines from the source or filter them after conversion.

The parser seems slow on huge files.

The implementation is O(n) and handles tens of thousands of rows comfortably. For multi-megabyte CSVs, consider a streaming parser or a local script.

How do I convert the list back to CSV?

Use the List to CSV tool. It joins lines with your chosen delimiter and quotes fields when needed.

Can I keep the header in the output?

Untick Skip first row. The header will become the first line of the list, joined like any other row.

How do I convert CSV to list with a custom row separator?

Select Custom in the Row separator dropdown and enter your desired separator (e.g. | ). The output will join rows with that string.

What if my CSV uses Windows line endings (CRLF)?

The parser normalizes \r\n, bare \r, and \n to \n before processing, so it works regardless of origin.