CSV is what every import screen, script, and database actually wants — and the conversion from .xlsx is where good data goes weird: formulas turn into numbers (usually fine), dates turn into something else (sometimes fine), commas inside cells grow quote marks (correct but alarming), and accents turn into mojibake in Excel (fixable, always). Here's what actually happens cell by cell, and how to convert multi-sheet workbooks without opening Excel five times.
Comma-Separated Values: plain text, one table, rows separated by newlines, cells by commas, defined by RFC 4180. That's the entire format. No formatting, no formulas, no multiple sheets, no cell types — every value is text once quoted properly. The limitation is the feature: any program written in the last forty years can read it, which is why CSV is the interchange format for CMS imports, mail-merge lists, database loads, and every "upload a spreadsheet" screen on the web.
| Excel cell | CSV output | Why |
|---|---|---|
Widget | Widget | Text passes through |
9.5 | 9.5 | Numbers export as values |
=SUM(B1:B2) → 3,500 | 3500 | CSV gets the cached computed value |
| Date shown as 3/15/26 | 3/15/26 | Dates export in the cell's display format |
name, co | "name, co" | Comma forces quoting per RFC 4180 |
say "hi" | "say ""hi""" | Embedded quotes double inside quotes |
| Cell with line break | "line↵break" | Embedded newlines are quoted |
Müller | Müller | UTF-8 text is preserved (BOM helps Excel) |
The formula row is the one that surprises people: the value you see is the value Excel computed and stored the last time the file was saved. That's why a converted CSV "loses" nothing that was visible — and why re-opening the CSV in Excel and expecting live formulas to still work is a category error.
Excel's own route — File → Save As → CSV — exports only the active sheet, silently. A five-sheet workbook needs five saves with five file names. Three better routes:
ssconvert workbook.xlsx output-%n.csv (Gnumeric) loops all sheets; Python with openpyxl or pandas does the same in a few lines for scripted pipelines.When you double-click a .csv, Excel doesn't know it's UTF-8, so it decodes it with the system's legacy code page — and Müller becomes Müller. The fix is a UTF-8 BOM: three bytes (EF BB BF) at the very start of the file that announce "this is UTF-8." Excel honors it, and every serious CSV reader tolerates it. Our converter writes the BOM by default with a toggle to disable it, since some Unix tools would rather see the marker bytes stripped. The alternative Excel-safe path — import via Data → From Text/CSV and pick 65001: Unicode (UTF-8) — works but isn't double-clickable.
Excel doesn't store dates; it stores day-counts since January 1, 1900, plus a display format. A converter writes what the cell displays, so the CSV inherits whatever format the workbook used — 3/15/26, 15-Mar-2026, or 2026-03-15. Two rules keep dates safe: format the source column to ISO (YYYY-MM-DD) before converting if the destination parses dates strictly, and never let a locale-sensitive system guess between month-first and day-first. ISO dates are unambiguous everywhere.
The trust question again: payroll, customer lists, and board decks shouldn't ride through a free upload converter whose retention policy you've never read. A browser-based converter runs the parsing engine (SheetJS, in our tool's case) on your own machine — the file is read into memory, converted, and handed back as a download, with zero network traffic during conversion. You can watch the network tab to confirm. For one-off or recurring sensitive exports, that's the same privacy as desktop software with the convenience of a URL.
Drop an XLSX, pick a sheet, preview, download clean UTF-8 CSV. All in your browser.
Convert XLSX to CSV →Expect values instead of formulas, display formats for dates, RFC 4180 quoting for anything with a comma, and a BOM for Excel-friendly UTF-8. Convert per sheet, preview before you trust, and keep sensitive files on your own machine. Going the other way — assembling CSVs into a real workbook — is what CSV to Excel is for.
Excel's Save As CSV exports only the active sheet, so a 5-sheet workbook means five manual saves. A converter with a sheet picker does it faster: load the workbook, click each tab, download each CSV (our tool adds a Download all sheets button). Scripted users get the same result with a short Python/openpyxl loop or ssconvert from Gnumeric.
As values, not formulas — CSV has no formula concept. Excel stores each formula's last computed result inside the file, and converters export that cached value: a cell showing 3,500 exports as 3500 even though it contains =SUM(B1:B2). Files saved by unusual tools without cached values can fall back to the formula text, which is the one case you'll see the formula itself in the output.
Double-clicking a CSV makes Excel guess the encoding from the system code page, and UTF-8 accents like Müller become mojibake. The fix is a UTF-8 BOM (three bytes at the file start) — Excel then reads the file as UTF-8 correctly. Our converter adds the BOM by default and lets you toggle it off, since some Unix pipelines prefer BOM-less files.