Excel to CSV: How to Export Spreadsheets Without Breaking Them
Why CSV Still Matters
For something that's barely a file format — just text with commas — CSV remains the lingua franca of data exchange. Databases import it. Pandas reads it in one line. QuickBooks, Xero, Shopify, Stripe and Amazon all accept it. Every BI tool from Tableau to Metabase opens it without complaint. When you need spreadsheet data to leave Excel and live somewhere else, CSV is almost always the answer.
The catch is that CSV is *too* simple. There's no formal schema, no type information, no notion of merged cells or formatting — just rows of values separated by some delimiter. Which delimiter? Depends. Which encoding? Depends. Which line ending? Depends. Get any of these wrong and the receiving tool either silently corrupts your data or refuses to open it at all.
The Comma vs Semicolon Trap
If you live in the United States, the United Kingdom or any locale that uses a period as the decimal separator, **comma** is the obvious delimiter. Excel saves CSVs that way by default. Done.
If you live in Germany, France, Spain, Italy or most of the rest of Europe, your spreadsheet uses a comma as the decimal separator — so €1.234,56 is written with a comma right in the middle of the number. Use a comma to separate fields too and every numeric value becomes ambiguous. That's why Excel in those locales **silently** switches to **semicolons** when you save as CSV. Open the same file on a US machine and Excel will treat the whole line as a single cell.
Our [Excel to CSV converter](/excel-to-csv) lets you pick the delimiter explicitly — comma, semicolon, tab or pipe — so you always know what you're going to get.
The UTF-8 BOM Question
Most modern tools expect UTF-8 encoding. Pandas, PostgreSQL, Google Sheets, Numbers, every Linux command — they all read UTF-8 cleanly. Microsoft Excel on Windows is the holdout: open a UTF-8 CSV containing **café** or **München** or **東京** and you'll see *café*, *München*, or worse.
The fix is a three-byte sequence called the **UTF-8 Byte Order Mark** (`\uFEFF`) at the very start of the file. It's invisible to most tools but it tells Excel "I'm UTF-8, render me correctly." If the resulting CSV is ever going to be opened in Excel on Windows, **leave the BOM on**. If it's going straight into pandas, a database or another Linux tool, you can leave it off for a slightly cleaner file — though those tools handle the BOM gracefully too.
Line Endings: LF vs CRLF
Linux and macOS use `\n` (LF) to end a line. Old Windows tools, including some scripts and legacy Excel imports, expect `\r\n` (CRLF). Modern Excel reads both, so LF is a safe default. Stick to CRLF only when a downstream tool explicitly demands it (some mainframe imports, some legacy data pipelines).
Multiple Sheets
Excel workbooks routinely contain many sheets — a summary, raw data, calculations, lookup tables. CSV has no concept of sheets at all. The standard approach is to export each sheet to its own CSV file, named something like `workbook-sheet1.csv`, `workbook-sheet2.csv`. Our converter lists every sheet after upload and lets you pick which one to export with one click.
If you need all sheets at once, repeat the process — or use a downstream tool like pandas (`pd.read_excel(path, sheet_name=None)` returns a dict of every sheet) when you're ready to write code.
What CSV Throws Away
CSV is plain text. Anything that isn't a cell value disappears in the conversion:
If you need any of those preserved, CSV is the wrong destination — keep the file as XLSX or convert it to a PDF instead.
Round-Tripping CSV
Going **the other way** is also easy: open the CSV in Excel, save as XLSX, and you have a workbook again. Just be careful with leading zeros in IDs (`007` becomes `7`), long numeric strings that get coerced into scientific notation, and dates that get auto-converted to whatever Excel thinks they should be. The fix in Excel is to use the *Data > From Text/CSV* import wizard and explicitly set those columns to **Text** before importing — never rely on the *double-click to open* path.
The Practical Recipe
For most workflows:
Download the CSV, hand it to pandas, your database, QuickBooks or whatever pipeline needs it, and you're done.
Conclusion
CSV is small, dumb and universal — which is exactly why it works so well. The format itself never changes. What changes is whether your specific combination of delimiter, encoding and line endings matches what the receiving tool expects. Get those three right and your spreadsheet data slides into the next stage of the workflow with zero friction. Our [Excel to CSV converter](/excel-to-csv) handles the conversion in your browser — no upload, no server, safe for sensitive data — and gives you control over each of those knobs. Pair it with our [CSV to JSON tool](/csv-to-json) when you need to take that data further.