Does Excel change your data?

Yes, before you have touched a cell. Double-click a CSV and Excel decides what each value is: 00412 becomes 412, SEPT2 becomes 2 September, 1/2 becomes a date, a 16-digit id is rounded, and a cell starting with = is run as a formula. Paste a column or drop a file and see which of yours would come back different. The check runs in your browser; your data goes nowhere.

9 of 10 values would come back different — and 1 of them is a formula Excel would run.

Run as a formula · 1 · run as a formula

A cell starting with = or @ is evaluated, not stored. Anyone who can write a row into this file can run a formula on the machine that opens it.

WhereYou wroteExcel shows
line 9=HYPERLINK("https://example.com","click")#NAME? — or whatever the formula computes

Read as a date · 2 · different value

Read as 2-Jan of this year. A fraction, a score or a range written this way is a date now.

WhereYou wroteExcel shows
line 31/22-Jan
line 82024-01-311/31/2024

Leading zeros dropped · 1 · different value

The zeros are not stored anywhere. A code, a postcode or an account number stops matching.

WhereYou wroteExcel shows
line 100412412

Read as a date (the gene-name problem) · 1 · different value

SEPT2 is read as the date 2-Sep. Gene names such as SEPT2, MARCH1 and DEC1 were renamed in 2020 because of exactly this.

WhereYou wroteExcel shows
line 2SEPT22-Sep

Long number rounded to 15 digits · 1 · different value

Excel keeps 15 significant digits. Everything past them is rounded away and the cell shows the number in scientific notation.

WhereYou wroteExcel shows
line 490071992547409939007199254740990

Trailing zero dropped · 1 · same value, different text

A number has no memory of its trailing zeros; 1.10 and 1.1 are the same to Excel.

WhereYou wroteExcel shows
line 51.101.1

Read as TRUE or FALSE · 1 · same value, different text

The text is replaced by the logical value TRUE.

WhereYou wroteExcel shows
line 6trueTRUE

Thousands separator dropped · 1 · same value, different text

The commas are not stored; the cell holds the bare number.

WhereYou wroteExcel shows
line 71,250.001250

Why this happens

A CSV holds text. A spreadsheet cell holds a typed value — a number, a date, a boolean, a formula, or text — and Excel has to pick one for every cell as it reads the file. It picks by looking at the text: anything that reads as a number becomes one, anything that reads as a date becomes one, and the original text is not kept anywhere. Most of the time the guess is what you meant. The rest of the time a postcode loses its zero, a product code becomes a date, and a save writes the guess back into the file for good.

The rules here are Excel's with the US English locale — dot decimals, comma thousands, month before day. A locale with decimal commas reads 1,5 as a number and 1.5 as text, so the exact set of values that change is different there, but the mechanism is the same.

What the verdicts mean

  • Run as a formula — a cell beginning with =, @, or + or − followed by anything but a plain number is evaluated when the file opens. This is how a hostile row in an export runs code on the machine that opens it; a file with these cells should not be opened in a spreadsheet at all.
  • Different value — the cell no longer holds what the text said: the zeros are gone, the id is rounded, the code is a date. Nothing recovers it.
  • Same value, different text — 1.10 is stored as 1.1, 1,250 as 1250, 50% as 0.5. Arithmetic survives; anything that compares or re-exports the file sees a change it never asked for.

Keeping the values you wrote

The tools here never do this: every value is carried as the text in the file. To look at or fix a file without Excel retyping it, open it in the editor. To hand a file to someone who will open it in Excel, convert it to a workbook here, where text stays text. If the damage has already happened, the guides on vanished leading zeros and dates that turned into numbers say what can be recovered. The same silent retyping happens to JSON through JSON.parse; that checker is this page's twin.