← Back to the tool

Why German CSV exports break in Python, R, and Excel

During a university lab course, our group simulated tens of thousands of rows of data for an upcoming experiment and needed to turn that data into plots to explain it. The simulation wrote its output to a text file. The plotting code failed on the first run.

What was actually wrong

The data file used a comma as the decimal separator and a semicolon as the column separator, the standard convention on German Windows systems. A value like 23,5 meant twenty-three point five, not twenty-three and five. The plotting code, written for the international convention, expected a period for decimals and a comma between columns. It read 23,5;1013,2 as one garbled field instead of two clean numbers.

This is not a bug in either convention. Windows regional settings tie the decimal separator to the list separator: if the decimal separator is a comma, Excel switches the CSV delimiter to a semicolon so the two don't collide. Countries that use a comma for decimals, most of continental Europe, end up with semicolon-delimited CSVs. Countries that use a period for decimals, including the US and UK, end up with comma-delimited CSVs. Move a file between the two, and nothing lines up.

What we tried first

We tried pasting the data into AI chatbots and asking them to fix the format. That works for a short sample, but chatbot input fields have a context limit, and tens of thousands of rows of data plus the same number of rows of expected output does not fit. The file was too long before we even got to the fix.

We tried find-and-replace inside a text editor, swapping every comma for a period. This corrupts data as soon as any field legitimately contains a comma outside of a decimal number, and at that row count there was no realistic way to check by hand which replacements were safe.

Excel's Text Import Wizard (Data > From Text/CSV) can be told explicitly which character is the decimal separator and which is the delimiter, and it does work. But it requires knowing the wizard exists and which settings to change, and most people in the course didn't know to look for it.

Who ends up stuck

In the end, someone in the group who already knew how to script it wrote a short fix and passed it around. That's the actual pattern: people who can already write a script solve this for themselves in a few minutes and move on. Everyone else just asked around until someone handed them a working file. Nobody in that second group brought up Excel's import wizard, not because they'd tried it and didn't trust the result, but because they didn't know it existed.

What this tool does

The converter on this site parses the file structure first, decimal separators and column delimiters, before changing anything, so a comma inside a quoted text field (a sample name, for example) is never mistaken for a column break. It shows you what it detected and what it's about to do before you download anything. Everything runs in your browser; the file is never uploaded anywhere.