ToolsTuna
    Utilities

    Excel to CSV: How to Export Spreadsheets Without Breaking Them

    May 19, 20265 min read

    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:

  1. Formatting: — colors, fonts, conditional formatting, number formats. The raw underlying number stays; `$1,234.50` becomes `1234.5`.
  2. Charts, images, pivot tables, comments: — gone entirely.
  3. Merged cells: — the value is written into the top-left cell, the others become blank.
  4. Formulas: — replaced by their last calculated value (which is what Excel itself saves alongside the formula, so this is usually exactly what you want).
  5. 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:

  6. Upload the workbook: to our [Excel to CSV converter](/excel-to-csv)
  7. Pick the sheet: you need
  8. Comma: as delimiter, unless your downstream tool expects semicolons or tabs
  9. UTF-8 BOM on: if Excel for Windows will ever open the file
  10. LF line endings: unless a specific tool demands CRLF
  11. Skip empty rows: to keep the output clean
  12. 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.

    Ready to try it?

    Use our free tool — no signup, no watermarks, no limits.

    Related Articles

    Get in Touch

    Questions, feedback, or partnership ideas? Send us a note.