Text to Columns
Split delimited text into columns — with a real CSV parser, so quoted fields survive.
Start typing above and the result appears here.
How to use Text to Columns
Paste your rows
The delimiter is detected automatically by looking for the one that produces a consistent column count.
Confirm the column count
The preview table shows how the data actually parsed. If a row has the wrong number of fields, the delimiter guess was wrong — set it manually.
Pick an output format
Markdown for documentation, JSON for code, SQL to seed a table.
Why use this text to columns
Runs on your device
Your input is handled entirely in this browser tab. Nothing is uploaded, so there is nothing for us to store, log or leak.
No sign-up, no quota
No account, no daily limit, no watermark and no email wall. Use it once or two hundred times a day.
Built to be linked
Options are stored in the URL, so a configured tool is a link you can send to a colleague or bookmark.
Technical notes
Nearly every "text to columns" tool online is a call to split() on the delimiter. That is correct until a field contains the delimiter, which in real exports is immediately — every address, every "Surname, Firstname". This is a real RFC 4180 parser: quoted fields, doubled quotes, and newlines inside quotes all handled.
Measured on our own test set
- 10,000 quoted rows
- 10.3 ms
full character-by-character parse — i5-6300U, Chrome 151, median of 8
Where a plain split() gets it wrong
| Input row | split(",") | This tool |
|---|---|---|
| "Rahman, Ayesha",Engineer | 3 fields — column shifted | 2 fields |
| "She said ""hi""",ok | 3 fields, quotes mangled | 2 fields: She said "hi" | ok |
| a,"multi\nline",c | Row broken in two | 1 row, 3 fields |
| a,,c | 3 fields (correct) | 3 fields, middle empty |
Supported
- RFC 4180 quoting — quoted delimiters, doubled quotes, embedded newlines
- Delimiter detection by column-count consistency
- Six output formats including JSON objects and SQL INSERT
- Proper re-quoting on CSV output — only where a field needs it
- Ragged row detection
Limits and trade-offs
- Space-delimited input cannot distinguish a separator from a space inside an unquoted field. Use tabs where you can.
- SQL output infers only "looks like a number" versus "string". It does not detect dates, booleans or nulls beyond empty fields.
- Fixed-width column input is not supported — this splits on a delimiter, not on column positions.
Last verified August 2026 · benchmarks re-run each quarter.
Frequently asked questions
Why does splitting on a comma break my data?
Because a field can contain a comma. `"Rahman, Ayesha",Engineer` is two fields, not three — the quotes say so. A plain split produces three, silently shifting every column after it. This tool implements RFC 4180 quoting, so quoted fields survive intact.
How does automatic delimiter detection work?
By consistency rather than frequency. Counting occurrences picks whichever character is most common, which on prose is the space. Instead it tries each candidate and keeps the one that produces the same number of fields on every line — which is what a delimiter actually does.
How do I put a quote inside a quoted field?
Double it. `"She said ""hello"""` is one field containing `She said "hello"`. That is the RFC 4180 rule, and this parser follows it, as does Excel.
Can fields contain line breaks?
Yes, if they are inside quotes. The parser reads the whole document rather than splitting on newlines first, so a quoted field spanning two lines is kept as one value.
Are the SQL statements safe to run?
They are escaped — single quotes are doubled and numbers are left unquoted — but treat them as a starting point, not as trusted input. Read them before running them against anything that matters, and never build a production import from a browser tool without checking it.
What happens if rows have different column counts?
They are kept as they are and the mismatch is reported above the result. Ragged rows are usually a sign the delimiter guess was wrong, or that a quote was left unclosed somewhere in the file.