Why your CSV opens in one column
Every row lands in cell A. The file is not corrupt and Excel is not broken: a CSV does not record which character separates its columns, so Excel guesses using a Windows regional setting rather than by reading the file. Here is how to tell what your file actually uses, three ways to fix it, and the quieter damage that starts once the columns do split.
Written · Updated
Your file is fine and Excel is not broken. A CSV does not record which character separates its columns, so Excel guesses, and it guesses using the list separator from your Windows regional settings rather than by looking at the file. If the file was written with semicolons and your machine expects commas, or the other way round, every row lands in one cell. Fix it for one file with Data → From Text/CSV, or for good by changing the list separator. If you would rather not have the argument at all, SPLIT and Sheets work out the separator by counting what is actually in the file, and nothing is uploaded.
Why a CSV does not say what it is
"Comma-separated values" is a description of one common case, not a specification. There is no header, no declaration and no magic number: a CSV is a text file, and the only way to know which character divides the columns is to look at the characters. Every program that opens one is guessing.
Excel guesses badly on purpose, for a reason that made sense in 1995. In much of continental Europe and Latin America the comma is the decimal mark (one thousand two hundred and thirty-four and a half is written 1.234,56), so a comma cannot also separate columns without ambiguity. Those systems use a semicolon instead, and Windows records the choice as the list separator in the regional settings. Excel reads that setting and applies it to every CSV it opens, whoever wrote the file and wherever it came from.
So the failure is not really about your file. It is about the file having been written on a machine whose list separator differs from yours, which is the normal case for anything downloaded from a website, exported by a colleague abroad, or produced by software written elsewhere.
Which separator does your file use?
Open it in Notepad, TextEdit or any plain text editor, not in Excel, and look at the first line.
| The first line looks like | Separator | Usually from |
|---|---|---|
ref,name,amount | , | UK, US, most APIs and most websites |
ref;name;amount | ; | Excel in Europe, and most European software |
ref name amount | tab | Copied out of a spreadsheet or a database client |
ref|name|amount | | | Older systems, and exports that expect commas in the data |
sep=; on its own first line | ; | Excel saying it outright |
That last one is worth knowing. Excel writes sep=; above the header so that the next copy of Excel reads the file correctly whatever its regional settings say, and most other software does not know the convention, so the line turns up as a stray first row called "sep=;" instead. If you have ever seen that, this is what it was.
Fixing it in Excel
Three ways, from the one that fixes this file to the one that fixes every file.
- Import instead of opening. Data → From Text/CSV, choose the file, and Excel shows a preview with a Delimiter dropdown. Pick the right one, press Load. This is the same machinery as the old Text Import Wizard and it asks the question rather than guessing.
- Text to Columns, after the fact. If the file is already open and stacked in column A: select the column, Data → Text to Columns → Delimited, tick the right separator, Finish. Same result, one more step, and it works on a file somebody has already sent you inside a workbook.
- Change the list separator, once. Windows: Settings → Time & language → Language & region → Regional format → Change formats → Advanced → List separator. Set it to whatever your files actually use. This fixes every future double-click and is the right answer if you are always receiving files of one kind, but it is a machine-wide setting that also changes how Excel writes CSVs, so it moves the problem to whoever you send them to.
On a Mac, Excel takes the separator from the region set in System Settings and offers no equivalent switch, so the import route is the reliable one there.
Add the line that ends the argument
If you are the one producing the file and it keeps coming back wrong, put sep=; (or sep=,) on a line of its own above the header. Excel obeys it regardless of regional settings, and any reader that does not understand it shows one odd row rather than one ruined column, which is the better failure of the two.
The damage a spreadsheet does while you are not looking
Worth saying, because getting the columns to split is not the same as getting the data back. The moment a CSV opens in Excel, several things change quietly and none of them are announced:
- A reference like
007becomes7. The leading zeros are gone and there is no undo that brings them back once the file is saved. - A postcode, part number or gene name that looks like a date becomes one.
MAR1becomes 1 March; this is well enough known in genetics that some genes were renamed to stop it happening. - A long number (an IMEI, an order ID, a card number) becomes
1.23457E+15, and the digits past the fifteenth are actually lost. - A value in a European decimal format read by a machine expecting commas, or the reverse, silently changes by a factor of a thousand.
None of that produces an error. It produces a file that looks fine.
Leading zeros disappeared
Excel reads 007, 01234 or a phone number starting 07 as a number, and a number has no leading zeros, so it shows 7, 1234 and 7700…. The zeros are not hidden by formatting; they are gone from the cell. If you save the file as CSV again, they are gone from the file too.
- Import it and mark the column as text. Data → From Text/CSV, choose the file, then Transform Data rather than Load. In the editor, select the column, set Data Type to Text (replace the current conversion when asked), then Close & Load. The older Text Import Wizard does the same on its third step: select the column and choose Text.
- Or switch the conversion off. Recent versions of Excel for Microsoft 365 have File → Options → Data → Automatic data conversion (under Advanced rather than Data in some builds; on a Mac, Excel → Preferences → Edit). Untick Remove leading zeros and convert to a number, and Keep first 15 digits of long numbers for the IMEI and card-number problem. There is also a box to be warned when a CSV is about to be converted, which is worth ticking.
- Do not fix it by retyping the zeros. Formatting the column as
00000puts zeros back on screen for a five-digit postcode, but the cell still holds1234, and a lookup against01234elsewhere will miss.
Numbers turned into dates
A part code like MAR1 or SEPT2, a size like 1-2 or 3/4, and a score like 2-1 all look like dates to Excel, and become 1 March, 1 February and so on, stored as date serial numbers. Unlike the zeros this cannot be undone by reformatting, because the original text is no longer in the cell.
- Import with the column as text, exactly as above. It is the only route that stops every kind of date conversion.
- The automatic conversion option helps with some of them. Convert continuous letters and numbers to a date covers
MAR1. It does not cover1-2or3/4, which are still read as dates unless the column comes in as text. - If the file has already been saved from Excel, go back to the file you were sent. A CSV that has been through Excel once may have lost the values for good.
We checked the two tools here against a semicolon file with a sep=; line holding 007, MAR1, 01234, a 15-digit IMEI, a 19-digit reference, 1-2, 3/4 and 1.234,56. SPLIT kept every value exactly and wrote them back out unchanged. Sheets kept them too, and saved every digit of the 19-digit reference back to the file. That check found two faults in Sheets first: it showed the sep=; line as a row of data, and it guessed the separator from the first five lines rather than the header, so a European file with decimal commas in its data could still come in as the wrong columns. It now reads a CSV by the same rule as every other tool on the site.
Not opening it in a spreadsheet at all
If what you need is to look at the file, filter it, deduplicate it, keep some columns or split it up, a spreadsheet is a heavy tool to reach for and it is the one that damages the data. SPLIT reads the file in the tab you have open, works the separator out by counting what is on the first line rather than by consulting your regional settings, honours a sep= line if the file has one, and converts nothing: a value that went in as 007 comes out as 007. Sheets uses the same reader when you open a CSV in it.
Nothing is uploaded in either case, which matters more than it sounds for this particular kind of file: a CSV is usually an export of a customer list, a payroll run or a database table, and putting one through a website to fix a punctuation problem is a disclosure nobody intended to make.
Questions people ask about Why your CSV opens in one column
Why does my CSV open with everything in one column?
Because a CSV does not record which character separates its columns, and Excel guesses using the list separator from your regional settings rather than by looking at the file. A file written with semicolons opened on a machine expecting commas, or the reverse, has no separator Excel recognises, so each line becomes a single cell.
How do I open a semicolon CSV in Excel without changing my settings?
Use Data → From Text/CSV rather than double-clicking the file. Excel shows a preview with a Delimiter dropdown; choose Semicolon and press Load. If the file is already open and stacked in one column, select it and use Data → Text to Columns → Delimited instead.
Why do European CSVs use semicolons?
Because in much of continental Europe and Latin America the comma is the decimal mark: one thousand two hundred and thirty-four and a half is written 1.234,56. A comma cannot separate the columns as well as the decimals without ambiguity, so those systems use a semicolon and Windows records the choice as the list separator.
What is the sep= line at the top of my CSV?
Excel writes sep=; or sep=, on a line of its own above the header to declare which separator it used, so that the next copy of Excel reads the file correctly whatever its regional settings are. Most other software does not know the convention and shows it as a stray first row. If you produce files that keep coming back wrong, adding that line is the most reliable fix.
Should I change my Windows list separator?
Only if you are consistently receiving files of one kind. It is machine-wide, it fixes every future double-click, and it also changes how Excel writes CSVs, so it moves the problem to whoever you send your files to. Importing per file is safer; the sep= line is better still.
Is my data damaged, or just displayed wrong?
If it is all in one column, nothing has been lost yet: the text is intact and only the splitting failed. The damage comes after, once Excel has split it: leading zeros are dropped from references, anything that looks like a date becomes one, and numbers longer than fifteen digits lose their tail to scientific notation. None of that is announced and none of it survives a save.
How do I open a CSV without Excel mangling it?
Use something that does not convert. SPLIT reads the file in your browser, detects the separator by counting what is on the first line, and changes no value at all: 007 stays 007 and a long order number keeps its digits. It filters, deduplicates, sorts, keeps columns and splits files, which is most of what people open a CSV in a spreadsheet to do.
Is it safe to fix a CSV with an online tool?
It depends whether it uploads the file, and most do. A CSV is usually an export of a customer list, a payroll run or a database table, so sending one to a stranger's server to fix a punctuation problem is a disclosure nobody intended. SPLIT and Sheets read the file in the tab you have open and send nothing, which you can confirm in your browser's network panel.
My file uses tabs, not commas. Is that still a CSV?
Usually called TSV, and it is the same problem with a different character. It is what you get from copying a block of cells out of a spreadsheet or a database client. Excel's import dialogue handles it under Delimiter → Tab, and the tools here detect it the same way they detect the others.
Why does a quoted comma sometimes break the file and sometimes not?
A well-formed CSV puts quotes round any field containing the separator, and a correct reader keeps that field whole. A reader that just splits on the character does not, so a name like "Carrow, Bea" becomes two columns and every field after it on that row shifts left. That is the single most common way a CSV is damaged invisibly, because it only affects the rows that happen to contain one.
Why did Excel remove the leading zeros from my CSV?
Because it read values like 007 or 01234 as numbers, and a number has no leading zeros. The zeros are removed from the cell, not hidden. Import the file with Data, From Text/CSV, Transform Data, and set that column's data type to Text, or untick Remove leading zeros and convert to a number under Excel's automatic data conversion options.
How do I stop Excel turning numbers into dates when opening a CSV?
Import the file rather than opening it, and set the affected column to Text before loading. Excel's option Convert continuous letters and numbers to a date covers codes like MAR1, but values like 1-2 or 3/4 are still read as dates unless the column comes in as text. SPLIT and Sheets on this site convert nothing, so 1-2 stays 1-2.
Related tools
- Opening a file without the software that made itMost files that will not open are a container your machine has no reader for. HEIC, .msg, winmail.dat, Word, Excel, zips and CSVs, opened in the browser tab.
- Why your .docx opens as XMLA Word file is a zip of XML, so the markup is not itself a fault. Four different problems look like this and their fixes have nothing in common, starting with whether the file is a Word document at all…
- Open an Excel file without Excel, without uploading itAn .xlsx is a zip of XML a browser can read in the tab. What comes across (sheets, values, formulas, formats), what does not (charts, macros, pivot tables), and how to save it back.
- Why Windows will not open your AES-encrypted zipThe file is not corrupt and the password is not wrong. File Explorer implements only the 1989 encryption scheme; yours uses the 2003 one, and Windows 11 did not change that.
- Why a zip says the path is too longError 0x80010135 is a 260-character limit in the Windows API, not a damaged archive: the same file opens everywhere else.
- Why a PSD opens blank or white outside PhotoshopA layered PSD saved with Maximise compatibility off holds a white placeholder where the picture should be.
All 22 guides under “A file that will not open, or comes out wrong”. Part of the reading for accountants.
A letter, now and then
An occasional letter when there is something worth reading: the new guides and what changed in the tools. Never more than once a month and nothing else, and you can leave at any time on the unsubscribe page.