Excel to CSV Converter: Convert XLSX to CSV Online
Convert Excel spreadsheets to CSV right in your browser. Preview every sheet, choose your delimiter, and export one sheet or all of them at once.
How this Excel to CSV converter reads spreadsheets entirely in your browser
Opening an .xlsx file is not as simple as reading text. It is a zipped bundle of XML parts describing sheets, styles, shared strings and cell references. This tool hands that parsing job to SheetJS, a JavaScript spreadsheet library, which reads the binary file with the browser’s FileReader API and builds an in-memory workbook object. No file is ever sent anywhere. The parsing, the sheet preview and the CSV export all happen on your device.
From upload to downloadable CSV
FileReader.readAsArrayBuffer(), giving raw binary data rather than text, since .xlsx is a compressed archive, not plain text.
XLSX.read(data, { type: 'array' }) unzips the archive and parses every worksheet into a workbook object keyed by sheet name.
XLSX.utils.sheet_to_json(ws, { header: 1 }) converts the active sheet into an array of arrays, which the tool renders as an HTML table, capped at the first 15 data rows so huge sheets stay responsive.
XLSX.utils.sheet_to_csv(ws, { FS: delimiter }) serializes the chosen sheet using your selected field separator, and the result is downloaded as a Blob.
That leading character written into the blob is a UTF-8 byte order mark. Excel on Windows does not reliably detect UTF-8 encoding in a plain CSV without it, so without the BOM, accented characters and non-Latin text can render as garbled symbols when the CSV is reopened in Excel, even though the data itself is correct.
Delimiter choice and why it matters
| Delimiter | Character | When to use it |
|---|---|---|
| Comma | , | The RFC 4180 standard, works with almost every tool |
| Semicolon | ; | Needed in regions where Excel’s default list separator is a comma-decimal locale |
| Tab | \t | Avoids delimiter collisions when your data itself contains commas |
What gets preserved and what does not
Preserved
Cell text values, sheet structure, and row and column order. Values are read with raw: false, so numbers and dates come through formatted the way they display in the sheet.
Not preserved
Cell colors, fonts, borders, merged cells, formulas (only their computed results), charts and embedded images. CSV is a plain text format with no styling model.
Spreadsheet and CSV specifications
- SheetJS documentation covers the
XLSX.readandsheet_to_csvAPIs this tool calls directly. - RFC 4180 is the closest thing CSV has to a formal specification, defining comma delimiting and quoting rules.
- MDN FileReader documents the API used to read the uploaded file into memory.
- ECMA-376 is the Office Open XML standard that defines the .xlsx format itself.
Why people flatten spreadsheets
Preparing data exports for import into databases or analytics tools that only accept CSV, stripping formatting cruft from a report before feeding it into a script, converting a finance team’s spreadsheet into a format a Python pandas pipeline can read, or splitting a multi tab workbook into separate flat files for a data warehouse loader.
FAQ: Excel to CSV Converter
No, the entire file is parsed and converted locally in your browser using the SheetJS library loaded once from a CDN, your actual spreadsheet content is never transmitted to any server. This makes the tool suitable for spreadsheets containing sensitive business or personal data.
Comma-delimited is the most common CSV convention and the default expected by most software, but in regions where a comma is used as the decimal separator (much of Europe and Latin America), semicolon-delimited CSV is often used instead so that decimal numbers like 3,14 aren’t mistaken for two separate fields. Tab-delimited files (sometimes called TSV) avoid delimiter conflicts entirely when your data itself contains commas or semicolons within a cell’s text.
The CSV format only supports a single flat, two-dimensional table, it has no concept of multiple sheets or tabs the way a native spreadsheet file does. If your workbook has multiple sheets and you need all of them in CSV form, use the Download All Sheets as ZIP button, which converts every sheet to its own separate CSV file, rather than trying to combine them into one file.
This tool exports the calculated (displayed) values of formula cells, not the formula text itself, since CSV has no way to represent a formula, only static text and numbers. If a formula hasn’t been recalculated recently in the original file (for example, if automatic calculation was turned off), the exported CSV will reflect whatever value was last stored in the file.
CSV is a plain text format with no support for formatting at all, so colors, fonts, borders, conditional formatting, and merged cells are all lost in the conversion, only the raw text or numeric value of each cell is preserved. Merged cells typically have their value appear only in the top-left cell of the merged range, with the other cells in that range appearing empty in the CSV.
By default, this tool preserves the text as displayed by the spreadsheet where possible, but very large numbers, scientific notation, or numbers with specific custom formatting (like currency symbols or percentage signs) can sometimes render differently once stripped of their original cell formatting. If you notice unexpected number formatting, check the original cell format in Excel before converting.
No, password-protected or encrypted spreadsheet files can’t be read by the browser-based parsing library. You’ll need to remove the password protection in Excel (File > Info > Protect Workbook > Encrypt with Password, then clear the password) before uploading the file here.
There’s no hard limit built into the tool itself, since everything processes locally in your browser’s memory rather than through a server upload quota, but extremely large spreadsheets (hundreds of thousands of rows or many sheets) may take longer to parse and could strain memory on lower-powered devices.
From the blog
Format guides and gotchas
What each format stores, and what quietly disappears in conversion.