Why Excel Breaks CSV Files — and How to Open Them Correctly
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:
- Open a blank workbook and go to Data → From Text/CSV.
- Select the CSV file. In the preview, set File Origin to "65001: Unicode (UTF-8)".
- Click Transform Data (or Edit), select the columns with codes, IDs or phone numbers and set their type to Text.
- 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.