How To·7 min read

How to Convert Excel to CSV (and Why Your Upload Keeps Getting Rejected)

That CRM, email tool, or bank import wants a CSV, not your .xlsx — and 'Save As CSV' in Excel quietly mangles dates, zip codes, and accented names. Here's how to export a clean CSV that actually imports.

The Import Button That Keeps Saying No

You built a nice spreadsheet. Clean columns, a header row, a few hundred contacts or products or transactions. Then you go to upload it — into your email platform, your CRM, your accounting software, your store's product importer — and the upload form says the quiet part out loud:

*"Please upload a .csv file."*

So you drag your `.xlsx` in anyway, hoping it's smart enough to figure it out. It isn't. Or it accepts the file, "imports" it, and then every contact has a phone number that reads `5.5551234e+09`, half your zip codes lost their leading zeros, and the dates turned into five-digit numbers like `45627`.

You didn't do anything wrong. Excel and CSV are two very different things pretending to be the same thing, and the gap between them is exactly where imports go to die. Here's what's actually happening and how to get a CSV that imports cleanly the first time.

Excel and CSV Are Not the Same File in Different Clothes

An Excel file (`.xlsx`) is a tiny database. It stores multiple sheets, formulas, cell formatting, colors, merged cells, dropdowns, charts, and the *difference* between the number `007` and the text `"007"`. It's a zipped bundle of XML that knows a zip code is text and a date is a date.

A CSV — "comma-separated values" — is a plain text file. One line per row, commas between the cells, and that is the entire specification. No formatting. No formulas. No sheets. No knowledge of what a column is *supposed* to be. A date in a CSV is just the characters you typed. A phone number is just digits. There is no "this cell is text, keep the zero" flag, because there are no flags at all.

That's not a flaw — it's the whole point. CSV is the universal handshake format precisely *because* it's dumb. Every CRM, database, email tool, and e-commerce platform on earth can read it, which is why they ask for it. But going from the rich `.xlsx` world to the flat CSV world means things get flattened, and if you're not watching, they get flattened wrong.

Why "Save As CSV" in Excel Quietly Wrecks Your Data

Excel *can* export CSV — File → Save As → CSV. But it does a few things that break imports, and it does them silently:

It strips leading zeros from anything it thinks is a number

Zip code `02134` becomes `2134`. A product SKU like `00815` becomes `815`. Any ID that starts with a zero and looks numeric loses that zero, because Excel decided the column was a number long before you hit save.

It turns long numbers into scientific notation

Phone numbers, credit card BINs, tracking numbers, and 15-digit IDs get rewritten as `5.5551e+09`. The underlying digits are gone — not hidden, *gone* — and no import will recover them.

It mangles dates based on your region

A date Excel displays as `03/04/2026` might export as `3/4/2026`, or `2026-03-04`, or `45720`, depending on your regional settings and how the cell was formatted. An importer expecting ISO dates (`YYYY-MM-DD`) chokes on all the others.

It botches accented characters and emoji

The classic Excel "Save As CSV" uses your system's legacy encoding, not UTF-8. So `José` becomes `José` and `Łódź` turns into mojibake the moment the importer reads it. Modern tools expect UTF-8; old Excel exports don't deliver it.

It only saves the sheet you're looking at

CSV holds exactly one table. If your workbook has three tabs, two of them vanish and Excel won't warn you in a way anyone reads.

The Clean Way to Convert Excel to CSV

The reliable fix is to run the file through a converter that defaults to UTF-8 and treats your cells as the text you see, not the type Excel guessed. Drop your workbook into Excel to CSV and you get a plain UTF-8 `.csv` with your values intact — leading zeros, accents, and all — ready to feed straight into whatever is asking for it.

If you ever need to go back the other way — say the import tool handed you a CSV and you want to actually *work* with it in a spreadsheet — CSV to Excel rebuilds it into a proper `.xlsx` with the columns typed sensibly instead of dumping everything into column A.

Before You Convert: Three 10-Second Checks

A clean converter solves encoding and formatting, but it can't fix a messy spreadsheet. Spend 30 seconds on these first:

1. One header row, at the very top. Importers read the first row as column names. Delete any title banners, logos, merged "Q3 Report" cells, or blank rows above your data. Row 1 should be `Name, Email, Phone` — nothing else.

2. One sheet, one table. Move the data you're exporting onto its own tab, and make sure there's nothing floating in random cells off to the side. CSV takes the whole sheet as a grid; a stray note in cell `H200` becomes a phantom column.

3. Force problem columns to text. For zip codes, phone numbers, and IDs, select the column, set the format to Text, and re-enter or paste the values so the leading zeros stick. This is the one thing you have to do *in* the spreadsheet — no converter can invent a zero that Excel already threw away.

What About Commas Inside Your Data?

Here's the trap that catches people exporting addresses or notes: your data has commas in it. `Portland, OR` is one value, but a naive CSV reads the comma as a column break and shoves `OR` into the next field.

Proper CSV handles this by wrapping any value containing a comma in double quotes: `"Portland, OR"`. A real converter does this automatically. A hand-edited or hastily-exported file often doesn't, which is why addresses are the single most common reason an import "works" but every row is shifted one column to the right. If you see your data offset after an import, commas-in-fields is almost always the culprit — re-export through a converter that quotes properly.

When You Shouldn't Use CSV at All

CSV is for *moving data between systems*, not for keeping it. Don't use CSV when:

  • You need formulas, multiple sheets, or formatting. CSV drops all of it. Keep the `.xlsx` as your master and export CSV copies for uploads.
  • You're sending a report for someone to read. Nobody wants to squint at raw CSV. Send a spreadsheet as a PDF so it looks the same on every screen and can't be accidentally edited.
  • You're pulling data out of a PDF. If your source is a PDF table, don't retype it — run it through PDF to CSV and clean up from there.
  • Bottom Line

    The import form isn't being difficult when it demands a CSV — it's asking for the one format every system can agree on. The problem is that Excel's built-in "Save As CSV" quietly guesses at your data types and gets the important ones wrong: leading zeros, long numbers, dates, and anything with an accent.

    Tidy the sheet to a single header row and one clean table, force your zip codes and IDs to text, then convert with Excel to CSV to get a proper UTF-8 file with commas quoted correctly. Keep your `.xlsx` as the original you actually edit, and treat the CSV as the disposable copy you hand to other software.

    Do that, and the next time you hit that upload button, it'll just say yes.