Format conversion

Convert CSV to Excel

Upload your .csv file and download it as .xlsx with the columns already split and numbers and dates recognised.

Free, no usage limits Nothing written to disk .csv

Accepted formats: .csv

«Automatic» detects it from the file itself and gets it right in virtually every case.

Left blank, the file name is used.

What happens when you double-click a CSV

A CSV is plain text: it does not say which separator it uses or which encoding it was saved in. Excel guesses using your regional settings and fails in the two classic ways — every column crammed into the first one, or every accented character turned into gibberish.

Here the file is analysed before anything is written, and what you download is a real .xlsx with proper columns and proper types.

The separator is detected for you

The four usual candidates — comma, semicolon, tab and pipe — are counted outside quotes across the first lines. The winner is the one that repeats consistently, because a real separator appears the same number of times on every row, whereas a comma inside a sentence does not.

If your file is an odd case, you can force the separator instead of leaving it on "Auto".

The encoding is detected too: a BOM is honoured when present, otherwise UTF-8 is tried and Latin-1 is used as the fallback when the bytes are not valid UTF-8 — which is what Excel on Windows usually produces.

Types: the actual reason to convert

Wrapping text in an .xlsx achieves little if every column is still text. With "Detect types" enabled, each cell is interpreted:

  • Numbers become numbers, so you can sum them and sort largest-first instead of alphabetically.
  • Dates in YYYY-MM-DD form (with or without a time) become dates.
  • true and false become booleans.

Decimals hide a known trap: 1.234,56 and 1,234.56 are the same amount written by two different people. The rule applied is that when both symbols appear, the last one is the decimal separator; when only one appears and it repeats, it is the thousands separator. In the one genuinely ambiguous case — 1,234 — the page language decides.

Codes with leading zeros

A 007, a postcode or a product reference starting with zero is not a number: it is an identifier. Converting it would drop the zero for good. That is why anything starting with 0 followed by a digit is kept as text.

To pin a specific value down, prefix it with a single quote ('0034): it is the Excel convention and here it also means "this is text, do not interpret it".

Frequently asked questions

Can I keep everything as text?

Yes: turn off "Detect types" and every cell reaches Excel exactly as it was in the CSV. That is what you want when the file is nothing but codes and you do not want anything interpreted.

What if the first row is not a header?

Untick the header option and that row is treated as data. Columns are then named with letters, as in Excel.

Can I choose the sheet name?

Yes. Leave it blank and the sheet takes the name of the file you uploaded.

What if rows have different numbers of fields?

The widest row sets the column count and shorter rows are padded with empty cells. No row is discarded.

How do I go the other way?

Use Excel to CSV, where you pick the output separator and encoding explicitly.