CSV Fixer for Excel

Fix weird characters, one-column CSVs and lost leading zeros. Free, no upload.

How It Works

Pick a CSV file. The tool checks its first bytes for a byte order mark, then tests whether the rest is valid UTF-8; if it is not, it reads the file as Windows-1252, the encoding older Excel versions save in. It also looks for text that was already garbled (UTF-8 bytes read as Windows-1252, such as é for é) and can turn it back.

Next it finds the delimiter by trying comma, semicolon, tab and pipe and keeping the one that gives the same number of columns on every row. Quoted fields are respected, so a semicolon inside quotes stays part of its field. Finally it flags columns with leading zeros, a leading + or more than 15 digits, and shows a preview of the result.

The .xlsx is written with the SheetJS library in your browser. Ticked columns become text cells. In other columns, plain numbers become numbers (a value with leading zeros or more than 15 digits never does), and everything else (dates, amounts with currency symbols or comma decimals) is kept exactly as written, as text.

Three Reasons a CSV Opens Wrong in Excel

What you seeCauseFix here
é, ’ or ? instead of accentsUTF-8 file read as Windows-1252UTF-8 with BOM, or .xlsx
Everything in column ADelimiter differs from your list separatorChange the delimiter, or .xlsx
02134 shows as 2134Excel converts number-like text.xlsx with text columns

Step-by-step guides: weird characters, CSV in one column and lost leading zeros. If Excel says the file is too large, use the CSV Splitter.

Limits

The whole file is loaded into memory, so files up to about 200 MB work; larger ones should be split first. An .xlsx sheet holds at most 1,048,576 rows and 32,767 characters per cell (Microsoft's Excel specifications and limits). Dates are not converted to Excel dates in the .xlsx; they stay as the text in your file.

Frequently Asked Questions

Why does my CSV show characters like é in Excel?

The file is UTF-8 but Excel read it as an older Windows encoding, so each accented letter's two bytes show up as two separate characters. Saving the CSV as UTF-8 with a byte order mark (BOM) tells Excel which encoding to use. This tool does that, and can also repair text that was already garbled and saved that way.

Why does my CSV open in one column?

Excel splits a CSV it opens directly using your computer's list separator. If the file uses semicolons and Excel expects commas, or the other way round, every row lands in column A. Re-save the file with the delimiter your Excel expects, or import it with Data > From Text/CSV and pick the delimiter there.

How do I keep leading zeros when opening a CSV in Excel?

A CSV has no way to mark a column as text, so Excel converts 02134 to the number 2134 when it opens the file. Download the .xlsx instead: the columns you choose are stored as text cells, so ZIP codes, IDs and long numbers open exactly as written when you double-click the file.

What does the sep= line do?

A first line such as sep=, tells Excel which delimiter the file uses, whatever your regional settings. It is an Excel-specific convention that Microsoft does not document, and other programs such as Google Sheets, databases and scripts read it as an ordinary data row. Only add it for files that will be opened in Excel.

Which encodings can it read?

UTF-8 (with or without a BOM), UTF-16 with a BOM, and Windows-1252, the encoding older Excel versions and many Western European systems use (Latin-1 files are read the same way). Detection is automatic, and you can override it if the preview looks wrong. Output is always UTF-8.

Is my file uploaded?

No. The CSV is read, fixed and converted by JavaScript in your browser, including the .xlsx export. Nothing is sent to a server.