Data

Why Excel Breaks CSV Files — and How to Open Them Correctly

6 min read · Updated 2026-10-05

You export a CSV from a website or a database, double-click it, and Excel shows something wrong: PIN codes like 007 become 7, a 16-digit card or account reference becomes 1.23457E+15, dates switch format, and names in Gujarati or Hindi become strings like "નમસà«". The CSV file itself is usually fine — Excel is guessing, and guessing wrongly.

This guide explains the three guesses Excel makes and the reliable way to open a CSV so your data stays exactly as it is.

Problem 1: garbled non-English characters (encoding)

Text in a file is stored as bytes, and an "encoding" says how to turn bytes into letters. Modern systems use UTF-8, which supports every language. When you double-click a CSV, Excel often assumes an older Windows encoding instead, so every Gujarati, Hindi, accented or ₹ character comes out as two or three wrong symbols.

Excel reads the file correctly when the CSV begins with a small invisible marker called a byte-order mark (BOM), which says "this is UTF-8". FilesSwift JSON to CSV adds this marker for exactly this reason. For other CSV files, import them as described below and choose UTF-8.

Problem 2: lost leading zeros and changed codes

When Excel sees a value that looks like a number, it converts it to a number. Numbers do not have leading zeros, so 007 becomes 7, 0091 becomes 91 and a phone number like +919876543210 may lose its plus sign. Codes that look like dates (such as 1-2 or MAR1) can even become dates.

This happens when the file is opened, not in the file itself — the CSV still contains 007. If you then save from Excel, the damaged values are written back, so never re-save an important CSV after double-clicking it.

Problem 3: long numbers in scientific notation

Excel stores numbers with 15 significant digits. A 16-digit or longer identifier — a card number, IMEI, bank reference or database ID — is shown as 1.23457E+15 and any digits beyond the 15th are replaced with zeros. Once that happens in a saved file, the original digits are gone.

The solution is the same as for leading zeros: tell Excel to treat that column as text before the data is loaded.

The reliable way to open a CSV in Excel

Instead of double-clicking, import the file:

  1. Open a blank workbook and go to Data → From Text/CSV.
  2. Select the CSV file. In the preview, set File Origin to "65001: Unicode (UTF-8)".
  3. Click Transform Data (or Edit), select the columns with codes, IDs or phone numbers and set their type to Text.
  4. Click Close & Load. The data now appears exactly as it is in the file.

Alternatives that avoid the problem

Google Sheets opens UTF-8 CSV files correctly and keeps text more faithfully; it is a quick way to look at a file. You can also convert the CSV to XLSX first with Excel Converter, which reads the file as UTF-8.

If you are converting CSV into JSON, use CSV to JSON: it keeps values such as 007, +919876543210, 12.50 and long IDs as text exactly as written, and only turns plain numbers like 42 into JSON numbers.

Frequently asked questions

Is my CSV file damaged if Excel shows 1.23E+15?

Not until you save it from Excel. The file still contains all the digits; import it with the column type set to Text.

How do I keep leading zeros in Excel?

Import the CSV with Data → From Text/CSV and set that column to Text before loading.

Why do Gujarati names look like ઠin Excel?

Excel opened a UTF-8 file with the wrong encoding. Import it and choose UTF-8 as the file origin, or use a CSV that starts with a UTF-8 byte-order mark.

Does Google Sheets have the same problems?

It handles UTF-8 correctly, but it can also convert number-like values. Set the column format to plain text if you need exact codes.

Try the tools

More guides