Excel (XLSX) to CSV
Open an .xlsx file without Office: pick the sheet, check the preview and download a CSV with the separator and date format you need. The file never leaves your device.
or click to pick one — it stays on your device, nothing is uploaded anywhere
🔒 The file is opened inside your browser: it is never uploaded to any server.
How to use it
Drop your .xlsx file into the box (or click to pick one): the tool opens it, lists the sheets and shows a preview of the first 50 rows. Choose the sheet, the separator and the date format, then download the CSV or copy it to the clipboard. Changing an option refreshes the preview immediately, so what you see in the table is literally what goes into the file.
Why an .xlsx can be opened without Excel
Since 2007 an Excel workbook is no longer a secret binary blob but an OOXML package (the public ECMA-376 standard): under the hood it is a ZIP archive full of XML files. Inside you find the list of sheets (xl/workbook.xml), all the cell text pooled into one dictionary (xl/sharedStrings.xml), the number formats (xl/styles.xml) and one file per sheet. This page unzips the archive with the browser's own decompression and reads that XML: no library, no server.
Dates: the number 45000 and the 29 February 1900 that never existed
In Excel a date is not a date but a number: 1 is 1 January 1900 and 45000 is 15 March 2023. The only thing that makes it a date is the format applied to the cell, so the tool reads styles.xml and treats as dates the built-in formats 14-22 and 45-47 plus any custom format containing y, m, d, h or s outside quotes. Then comes the historical trap: Excel believes 1900 was a leap year and that 29 February 1900 (serial 60) exists, for compatibility with Lotus 1-2-3 back in 1983. That is why one day has to be subtracted from serial 61 onwards, otherwise every date comes out 24 hours off. Files saved by old Excel for Mac use the 1904 epoch instead: the tool detects it and tells you.
Separator, decimal mark and BOM: why a CSV opens badly
CSV has no single standard. Excel in most European languages expects a semicolon as the separator and a comma as the decimal mark; English-speaking software and most business systems want a comma as the separator and a dot in decimals. Here you pick either combination, and any value containing the separator, a quote or a line break is wrapped in double quotes following RFC 4180. The UTF-8 mark at the start (the BOM) is the reason accented characters turn into mojibake when a CSV is opened with a double click: leave it on if the file is headed for Excel, turn it off if a program expects plain text.
What it does not do, stated up front
It reads .xlsx only: the old binary .xls and password-protected files will not open (and you get a clear message, not silence). Formulas are not recalculated: you get the value Excel stored the last time it saved. Numbers come out exactly as stored, without the cell's formatting: a cell displayed as 15% comes out 0.15, and one displayed as $1,234.50 comes out 1234.5. Charts, images, comments, colours and merged cells are not exported (a merged cell keeps its value in the first slot, just like in Excel). Hidden rows and columns are included in the CSV.