Skip to content
HandfulTools

How to open a CSV file in Excel without breaking accents and columns

Why CSV files open with garbled characters or everything in one column, and three reliable ways to get clean data into Excel or back out as CSV.

· 6 min read

Do not double-click a CSV file. Excel then guesses the encoding and the column separator from your Windows regional settings, and when it guesses wrong you get é instead of é, or every value stacked in column A. Import the file instead — Data → From Text/CSV, where you choose both — or convert it to a real .xlsx workbook first.

The quickest route here: open CSV to Excel, drop the file in, and download the .xlsx. The delimiter is detected from the file itself, quoted fields containing commas and line breaks are parsed correctly, numbers are stored as numbers so formulas work, values with leading zeros stay text, and the header row is bold and frozen. It runs in your browser, so a customer export never leaves your machine.

The two problems, and where they come from

Garbled accents. A CSV is plain text, and plain text means nothing without an encoding. Most modern systems export UTF-8, in which é is the two bytes C3 A9. If Excel reads those bytes as Windows-1252 — the legacy encoding it falls back to on a Western European Windows install — it prints them as é. Every accented character has its own version: É becomes É and € becomes €. A file starting with a byte order mark (EF BB BF) tells Excel it is UTF-8; many exports do not include one.

Everything in one column. "Comma-separated" is not always commas. When you double-click a .csv, Excel splits on the List separator from your Windows regional settings (Control Panel → Region → Additional settings), which is a semicolon anywhere decimals are written with a comma. Open a comma file with those settings, or a semicolon file with US settings, and the columns collapse into one.

Choosing a route

Method Good for Watch out for
Convert to .xlsx first Files you will keep working in; leading zeros; repeat exports You get a workbook, not a CSV, so an app expecting CSV needs the reverse conversion
Data → From Text/CSV A one-off file where you want control over each column's type Several dialogs per file, every time
Google Sheets import Sharing, or a machine without Excel Very large files are slow; formulas differ from Excel's
Changing the Windows list separator Matching a supplier who always sends the same format It is a system-wide setting that changes every CSV you touch

Excel's import wizard, step by step

  1. Open a blank workbook. On the Data tab, in the Get & Transform Data group, choose From Text/CSV and select the file.
  2. In the preview window, set File Origin to 65001: Unicode (UTF-8). The preview updates immediately — accents either fix themselves or they do not, and you know straight away.
  3. Set Delimiter to the one the file really uses. The preview shows the columns as they will be imported.
  4. Set Data Type Detection to Do not detect data types if the file contains postcodes, product codes, phone numbers or long IDs. This is what keeps 01234 from becoming 1234.
  5. Choose Load to drop it into a sheet, or Transform Data to open Power Query and set each column's type by hand — the reliable option when one column must stay text.

The older step-by-step wizard still exists: turn on File → Options → Data → Show legacy data import wizards, then use Data → Get Data → Legacy Wizards → From Text (Legacy). It is the fastest way to mark a single column as Text before import.

Google Sheets

File → Import → Upload, pick the file, then choose where it goes (new spreadsheet, new sheet, replace the current one) and a Separator type: Detect automatically, Tab, Comma or Custom. Untick Convert text to numbers, dates, and formulas to keep every value exactly as written — the equivalent of "do not detect data types". Sheets expects UTF-8 and handles it without a BOM, so accent problems are rarer here than in Excel.

What Excel changes without asking

Excel rewrites values it thinks it recognises. The three that cause real damage:

  • Leading zeros disappear. 01234 becomes 1234. French postcodes, Italian CAPs, UK product codes and phone numbers all lose their first digit.
  • Anything date-shaped becomes a date. 1-2 becomes 2 January of the current year, and MAR1 becomes 1 March.
  • Long numbers lose precision. Excel keeps 15 significant digits. A 16-digit card number or a 20-digit transaction ID comes back with zeros at the end, and long values switch to scientific notation (1.23E+15).

In Excel for Microsoft 365 and Excel 2024 you can switch these off: File → Options → Data → Automatic Data Conversion on Windows, or Excel → Preferences → Edit → Automatic Data Conversion on Mac. The four checkboxes are Remove leading zeros and convert to number, Keep the first 15 digits of long numbers and display in scientific notation if required, Convert digits surrounding the letter "E" into a number in scientific notation, and Convert "date-like" combinations of continuous letters and numbers into a date.

One more limit worth knowing: a worksheet holds 1,048,576 rows and 16,384 columns. A larger export needs a database or a tool that streams, not a spreadsheet.

Going the other way: Excel to CSV

When a web app asks for a CSV, Excel to CSV exports each sheet separately with the delimiter you pick — comma, semicolon or tab. Choose UTF-8 with BOM if the file may be reopened in Excel, and plain UTF-8 for a database, an API or a script, where a BOM can turn up as stray characters in the first column name.

For developers

APIs speak JSON and spreadsheets speak CSV. CSV to JSON and JSON to CSV convert between them, flattening nested objects into dotted column names. Both use the same parser as the Excel converter, so a field containing a comma, a quote or a line break survives the round trip.

Problems that survive the first fix

The accents are still wrong after converting. The source file is probably not UTF-8 at all but Windows-1252 or ISO-8859-1. Browser-based tools read text as UTF-8, so they cannot rescue it either. Reopen the original in a text editor that lets you choose the encoding — Notepad++, VS Code, BBEdit — and re-save it as UTF-8, then convert.

One stray first row containing sep=;. Some exporters add that line so that Excel picks the right separator when you double-click. It is not part of the CSV format, and other tools read it as a data row. Delete it if you are importing anywhere other than Excel.

A column split in the wrong place. A field containing the delimiter must be wrapped in double quotes, with any internal quote doubled. If a file was written by string concatenation rather than a CSV library, it will be broken in exactly the rows that contain a comma in an address.

Dates reversed. 03/04/2026 is 3 April or 4 March depending on who reads it. Ask the source for ISO dates (2026-04-03): unambiguous, and they sort correctly as text.

Invisible characters in the values. Exports from web apps often carry non-breaking spaces and zero-width characters that make lookups fail. Text Cleaner removes them before you import.

Questions people ask

Why does the file look fine in Notepad but wrong in Excel? Notepad detects UTF-8; Excel, when you double-click, follows your regional settings instead.

Can I make Excel always open CSVs as UTF-8? Not for double-clicking. Either import through From Text/CSV or convert to .xlsx first.

Is my data uploaded anywhere? Not by the converters here — they run in the browser, on your device.

What is a TSV? The same thing with tabs between columns. Tabs rarely appear inside values, which makes TSV safer than CSV for exported text.

Next steps

Tools used in this guide

← All guides