Load a CSV/TSV file — automatically detects the delimiter, header row and decimal format
This tool parses a loaded CSV or TSV file and determines its delimiter (comma, semicolon, tab or pipe), whether the first row is a header, the line ending (CRLF/LF) and the decimal separator used in numeric cells, by testing candidate delimiters against the file content and picking the one with the most consistent column count. The detected structure can then be re-exported with a different delimiter, quoting style, line ending or decimal separator, with a live preview of both source and converted data.
It is used for cleaning up CSV/TSV exports between locales (e.g. Excel Czech/EU semicolon format with comma decimals vs. RFC 4180 comma-separated format with dot decimals) before importing the data elsewhere. All parsing and conversion runs locally in the browser; no file is uploaded.
Load a CSV/TSV file or paste text above.
Delimiter (comma / semicolon / tab / pipe), header row, quoting and decimal separator
are detected automatically — then choose the output format to convert and download.
| Dialect | Delimiter | Decimal separator | Quoting | Typical origin |
|---|---|---|---|---|
| RFC 4180 CSV | comma , |
dot . |
double quotes, doubled "" to escape |
The formal CSV standard; most databases, APIs, Unix tools |
| Excel (US/UK) | comma , |
dot . |
double quotes when needed | Microsoft Excel export, US/UK locale |
| Excel (Czech / EU) | semicolon ; |
comma , |
double quotes when needed | Microsoft Excel export, Czech/European locale — comma is
reserved as the decimal separator, so fields are split on ; |
| TSV | tab \t |
dot or comma | rarely quoted | Database/spreadsheet exports, bioinformatics, copy-paste from spreadsheets |
| Pipe-delimited | pipe | |
dot or comma | optional | Legacy exports, mainframe/ERP data dumps, log formats |
Detection parses the file with each candidate delimiter and picks the one that produces
the most consistent column count across rows. The decimal separator is guessed from
numeric-looking cells (e.g. 1234,56 vs 1234.56) — this is only
a heuristic and can be overridden in the output options.
All processing happens locally in the browser; the file is never uploaded anywhere.