Why European CSV Files Break in CRM Imports (and How to Fix Them)
CSV files from French or German Excel use semicolons, comma decimals, and DD/MM/YYYY dates. Here's what breaks when you upload them to HubSpot, Salesforce, or Pipedrive, and how to fix it.
On this page
You export your contacts from Excel on a French or German Windows machine. The file looks fine. You upload it to HubSpot. The import wizard reads your entire first row as a single column header, or imports 500 contacts into one field. Or the import works but your deal values are off by a factor of 1000.
It looks like a HubSpot bug. The real cause is a mismatch between how European versions of Excel format CSV files by default and what US-hosted CRMs expect.
Here’s what’s different and how to fix each issue.
The delimiter problem
The most visible issue, and the first one you’ll hit.
What happens: You open your exported file in a text editor and see:
Prénom;Nom;Email;Entreprise
Marie;Dupont;marie@example.fr;Acme
Jean;Martin;jean@example.fr;Contoso
Semicolons between fields, not commas. French and German versions of Excel use the regional list separator defined in Windows, which is a semicolon (;) in French and German locales. The file is technically valid CSV, but most import wizards expect commas by default.
What breaks: HubSpot, Salesforce, and Pipedrive all expect comma-separated files. When they receive a semicolon-separated file, each entire row is read as a single value. The import wizard shows one column containing everything.
How to fix it in Excel:
Opening the CSV and using Save As → CSV (Comma delimited) forces Excel to save with commas regardless of locale settings.
If the file uses commas as decimal separators (which it will, see the next section), you need to resolve both issues at the same time, not just re-save. Otherwise fixing the delimiter will break your numbers.
How to fix it in a text editor:
In Notepad++ or VS Code, a Find & Replace with ; → , fixes this directly. It works if the data doesn’t contain commas inside any field values; if it does (company names like “Dupont, SARL”), those fields need to be wrapped in quotes first.
The decimal separator problem
Harder to notice, more expensive if it gets through.
What happens: European number formatting uses a comma as the decimal separator and a period as the thousands separator. 1.234,56 is one thousand two hundred thirty-four point fifty-six. In US formatting, that same number is written 1,234.56.
When a European CSV with 1.234,56 is read by a US-locale system, the comma is interpreted as a field delimiter. Your number column gets split across two fields, or the value is treated as text and imported as blank.
What breaks: Revenue fields, deal values, quantities, percentages. A deal worth €250.000 (European notation for 250,000) imports as 250 with the .000 either cut off or routed to the next column.
How to fix it:
Before saving the CSV for import, number columns need converting to US format. In Excel, selecting the number column and opening Format Cells → Number makes it possible to set the decimal places and uncheck “Use 1000 Separator,” or switch the separator style, before saving as CSV (Comma delimited).
A Find & Replace works as an alternative: replacing . with nothing removes the thousands separator, then replacing , with . converts the decimal separator. This only works on number columns, and only in that order, since applying it elsewhere corrupts the rest of the data.
Asphorem’s CSV Normalizer handles this at the file level with a format selector: choose EU or US number format before parsing, and the tool normalises all number columns consistently before processing.
The date format problem
What happens: European date convention is DD/MM/YYYY. 05/01/2024 means January 5th, not May 1st.
HubSpot’s importer lets you declare the file’s date format (mm/dd/yyyy, dd/mm/yyyy, or yyyy-mm-dd) during the mapping step. Salesforce’s Data Import Wizard expects MM/DD/YYYY. Even where the format can be declared, a European DD/MM/YYYY file still causes trouble when the column is inconsistent, or when it lands in a system or config that expects month-first and reads it wrong (anything where day ≤ 12 is ambiguous).
What breaks: Close dates, creation dates, contract start and end dates. A deal closed on May 1st imports as January 5th. A contract expiring in February 2025 imports as a date in 2025 but the wrong month, with no error.
How to fix it:
Converting European date columns to YYYY-MM-DD before exporting removes the ambiguity for any destination, whatever format that system expects. In Excel:
=TEXT(A1,"YYYY-MM-DD")
Applying this formula to a helper column, pasting values over it, deleting the original column, and renaming the helper produces a clean YYYY-MM-DD column.
In Google Sheets the same formula works for cells stored as dates. For cells stored as text in DD/MM/YYYY format, you need to reconstruct the date:
=TEXT(DATE(RIGHT(A1,4), MID(A1,4,2), LEFT(A1,2)), "YYYY-MM-DD")
The encoding problem
What happens: European names frequently contain accented characters: é, è, ü, ñ, ç, ô. Windows Excel saves CSV files in Windows-1252 encoding by default. When a UTF-8-expecting system reads a Windows-1252 file, those characters appear as garbled strings: é, ü, ñ.
What breaks: Contact names (Lefèvre → Lefèvre), company names (Société Générale → Société Générale), addresses, any field with non-ASCII characters.
How to fix it:
In Excel, Save As → CSV UTF-8 (Comma delimited) replaces the standard CSV option and preserves the characters. The UTF-8 variant is available in Excel 2016 and later.
In Google Sheets, downloads are always UTF-8, so opening the file in Sheets and re-downloading it as CSV from there resolves the issue when the original file is still accessible.
If the file arrived from someone else and re-exporting isn’t an option, opening it in Notepad++ shows the current encoding in the bottom bar; switching Encoding → Convert to UTF-8 before saving fixes it.
How to export a clean CSV from French or German Excel
A file that any CRM can import without issues starts with converting number columns from European to US format (commas to periods for decimals), then converting date columns to YYYY-MM-DD using a TEXT() formula. From File → Save As, choosing “CSV UTF-8 (Comma delimited)” as the file type, not “CSV (Comma delimited)” and not “CSV (MS-DOS),” handles the encoding correctly. Opening the saved file in a text editor afterward confirms commas between fields, periods for decimals, and no garbled characters.
If you received the file from someone else
You can’t control how they exported it. Check:
- Open in a text editor first. If you see semicolons between values, it’s using a European delimiter.
- Check a number field: if you see
1.234,56style formatting, European decimals need converting. - Check a date field: if you see
DD/MM/YYYY, convert before uploading. - Check for accented characters: if they look wrong in the text editor, re-encode to UTF-8.
Before you import: the checklist
- File uses commas as field delimiter (not semicolons)
- Number columns use period as decimal separator (not comma)
- Date columns are in
YYYY-MM-DDformat - File is saved as UTF-8 (not Windows-1252 or Latin-1)
- Verified in a text editor, not just Excel (Excel auto-corrects some of these on open)
If you import from European sources regularly, Asphorem’s CSV Normalizer lets you select EU or US number format at upload and configure the output separator per preset, so the same file format gets handled the same way every time without manual conversion steps.
European CSV Imports: Frequently Asked Questions
Why does my French Excel CSV import as one column?
French and German Excel saves CSV files with semicolons as delimiters, not commas. Most CRM import wizards expect commas, so the entire row is read as a single field. Re-saving in Excel as “CSV (Comma delimited),” or replacing ; with , in a text editor, fixes it.
How do you convert European decimal format to US format?
In a number column with values like 1.234,56, replacing . with nothing first removes the thousands separator, and replacing , with . afterward converts the decimal. The order matters: reversing it corrupts the values. This applies to number columns only, not to dates or text.
What’s the difference between CSV and CSV UTF-8 in Excel?
“CSV (Comma delimited)” saves in your system’s locale encoding (usually Windows-1252 on French/German Windows). “CSV UTF-8 (Comma delimited)” saves in UTF-8 with a BOM, which preserves accented characters across systems. The UTF-8 variant handles any file with é, ü, ñ, ç, etc.
How do you fix garbled accent characters in a CSV file?
If Lefèvre appears as Lefèvre, the file is UTF-8 read as Windows-1252 (or vice versa). In Notepad++ or VS Code, changing the encoding to the source encoding and confirming the characters render correctly before saving as UTF-8 recovers it. Full recovery steps in how to fix encoding errors in a CSV file.
How do I convert DD/MM/YYYY to YYYY-MM-DD in a European CSV?
The formula =TEXT(DATE(RIGHT(A1,4), MID(A1,4,2), LEFT(A1,2)), "YYYY-MM-DD") works in Google Sheets; a regex find-and-replace in VS Code, (\d{2})/(\d{2})/(\d{4}) replaced with $3-$2-$1, works too. See how to standardise date formats in a CSV for the full conversion guide.
Asphorem maps your columns, standardises picklist values, and normalises dates so your next import works first time. Free plan included.