Upload a CSV up to 5 MB and download an .xlsx that opens already split into columns, with numbers as numbers, dates as dates, and codes like 00123 kept as typed. The separator is detected from the file.
Accepts .csv, .tsv and .txt — up to 5 MB, no account needed
Under the hood
The separator is whichever of comma, semicolon, tab or pipe splits each of the first 5 lines into the same number of columns. A separator inside a quoted cell is not counted, so "Acme, Ltd" does not add a column.
A value wrapped in quotes can contain the separator, line breaks, and quotes escaped by doubling them. All three stay inside the one cell.
Each column is tested on its first 200 values. All numbers: a number column. All ISO or day-first dates: a date column. Anything else, including codes like 00123, stays text exactly as in the file.
An unclosed quote or a row with the wrong number of fields is skipped and reported in a warning, and the rest of the file still converts.
Questions
Yes. The separator is read from the file itself, not assumed. Semicolons, tabs and pipes are detected the same way commas are, which is why files exported from European versions of Excel open correctly.
Because Excel assumes your system's list separator. If the file uses commas and your system expects semicolons, every row becomes a single cell. Converting to .xlsx first removes that problem entirely — the file arrives already split into columns.
Yes, when the CSV is saved as UTF-8: é, ü, ñ, Arabic, Cyrillic and Japanese text come through intact. A CSV saved in an older Windows code page, such as Excel's "CSV (Comma delimited)" option, loses its accented letters; save it as "CSV UTF-8" instead.
A quoted cell is kept whole. "Acme, Ltd" stays one cell rather than splitting into two, including when the quotes themselves are escaped by doubling.
Short rows are padded with empty cells and over-long rows are skipped, with a warning naming the line. The conversion still completes rather than failing on one bad row.
5 MB per file. No account is needed, and the file is not stored: it is converted in memory and the .xlsx is sent back straight away.