Comma, Semicolon, or Tab: Why Excel Writes CSV Files That Other Tools Reject
CSV stands for comma-separated values, yet a large share of the CSV files produced in Europe use semicolons instead. Neither file is broken. Excel is following the Windows regional settings of the machine that saved it, and the root cause is the humble decimal comma. This guide explains why both delimiters exist, how to tell which one you have, and how to convert between comma, semicolon, and tab without mangling your data. When you just need the file fixed, the CSV Delimiter Converter does it in your browser.
Try the Change delimiter toolChange a file's delimiter: read CSV with one separator and write it with another, such as comma to tab (TSV) or pipe. Runs in your browser.The decimal comma is the culprit
In the United States and the United Kingdom, one and a half is written 1.5, so the comma is free to separate fields. In Germany, France, Spain, Italy, the Netherlands, and most of continental Europe, the same number is written 1,5. If Excel exported that value into a comma-delimited file without quoting, the number itself would look like two fields.
German data, comma delimiter (broken):
name,price
Kaffee,1,5 <- is the price 1 and then a mystery field 5?
German data, semicolon delimiter (what Excel actually writes):
name;price
Kaffee;1,5 <- unambiguous: one name field, one price fieldWindows resolves this at the operating-system level. Every region defines a decimal symbol and a list separator, and the two must differ. Regions that use the decimal point get a comma as list separator; regions that use the decimal comma get a semicolon. When you save a workbook as CSV, Excel uses whatever the system list separator is, which is why the same File > Save As produces comma CSVs in London and semicolon CSVs in Berlin. Microsoft documents this behavior on its text file import and export page.
| Locale | Decimal separator | List separator (CSV delimiter) |
|---|---|---|
| United States | 1.5 (point) | , (comma) |
| United Kingdom | 1.5 (point) | , (comma) |
| Germany | 1,5 (comma) | ; (semicolon) |
| France | 1,5 (comma) | ; (semicolon) |
| Spain | 1,5 (comma) | ; (semicolon) |
| Italy | 1,5 (comma) | ; (semicolon) |
| Netherlands | 1,5 (comma) | ; (semicolon) |
What the standard actually says
RFC 4180, the closest thing CSV has to a specification, is unambiguous: fields are separated by commas, and the grammar defines the delimiter as exactly the comma character. A semicolon-delimited file is therefore not CSV in the RFC sense, just CSV-like. That distinction matters in practice because strict parsers, APIs, and upload forms that promise RFC 4180 compliance will read a semicolon file as one giant column. The RFC also formalizes the quoting rules that make embedded delimiters safe, which we cover in CSV quoting explained: a field containing the delimiter, a quote, or a line break must be wrapped in double quotes.
How to tell which delimiter you have
- Open the file in a plain text editor, not Excel. Excel hides the raw bytes and applies its own locale guessing, so it is the worst place to diagnose a delimiter problem.
- Look at the header line. Column names rarely contain delimiters, so whichever character repeats between them is your separator.
- Count occurrences per line. In a well-formed file, every record has the same number of unquoted delimiters. If commas appear in wildly varying counts but semicolons are consistent, the semicolon is the delimiter and the commas are decimal separators or prose.
- Watch for the one-column symptom. If a tool loads your entire file into a single column, it expected a different delimiter than the file uses.
Converting between delimiters safely
A blind find and replace of semicolons with commas corrupts any file where fields contain the new delimiter, because those fields now need quotes they do not have. A correct conversion parses the file with the old delimiter, respecting existing quotes, then re-serializes with the new delimiter and re-quotes whatever now needs it. The CSV Delimiter Converter does exactly that, entirely client-side, converting between comma, semicolon, tab, and pipe. If you also need to inspect or fix individual cells first, the CSV Editor opens either flavor, and the CSV Escape tool handles quoting for single values you are building by hand.
Convert a file nowChange a file's delimiter: read CSV with one separator and write it with another, such as comma to tab (TSV) or pipe. Runs in your browser.The sep= trick, and why to use it sparingly
Excel honors a special first line of the form sep=; (or sep=, or sep=|). When it opens a file that starts with this line, it uses the declared character as the delimiter regardless of regional settings, and it hides the line from the grid. That makes sep= a handy fix when you control the file and Excel is the only consumer: prepend one line and every Excel install on earth opens it correctly.
Tabs: the third option
Tab-separated values sidestep the whole comma-versus-semicolon fight, because no locale uses a tab as a decimal or thousands separator. TSV has its own IANA media type registration (text/tab-separated-values), and tabs almost never occur inside real data, so many TSV dialects skip quoting entirely and simply forbid tabs in fields. The trade-offs: tabs are invisible, which makes files harder to eyeball, and a tab pasted into the wrong text box silently becomes spaces or a focus change. Excel reads and writes TSV happily (it calls the format Text (Tab delimited)), and pasting cells from Excel into any text editor produces tab-separated text, which is often the fastest export of all.
The locale-proof way to open any delimiter in Excel
Instead of renaming files or fighting regional settings, use Excel's import pipeline: Data > Get Data > From Text/CSV (or the legacy Text Import Wizard). Excel previews the file, guesses the delimiter, and lets you override it explicitly, along with the encoding and column types. This works identically on a US and a German machine, which makes it the right instruction to put in documentation that international users will follow. For the reverse direction, when Excel on a European machine insists on writing semicolons and the recipient needs commas, either convert the saved file with the CSV Delimiter Converter, or untick File > Options > Advanced > Use system separators and set the decimal separator to a point before saving. Changing the Windows list separator itself also works, but it affects every application on the machine, including formula argument separators in Excel.
Sources
Related articles