Home Excel to CSV
Excel to CSV converter
Open an Excel workbook and get CSV from any of its sheets. The file is read in this tab and never uploaded, so it is safe for spreadsheets you would not hand to a hosted converter.
Other languages:TürkçeDeutsch中文हिन्दीРусский
Dates are numbers inside the file
An Excel date is not stored as a date. It is a number — the count of days since the end of
1899 — with a display format that makes it look like one. 45292 is 1 January
2024; 45292.75 is 6 pm that day. A converter that reads the number and ignores the
format gives you a column of five-digit integers, which is the most common complaint about
Excel-to-CSV tools.
This one reads each cell's number format from the workbook's styles. A cell formatted as a
date is written as an ISO 8601 date (2024-01-01), a date-and-time as
2024-01-01T18:00:00, and a time on its own as 18:00:00. Both of
Excel's date systems are handled:
- The 1900 system, the default on Windows, including its historical quirk: Excel treats 1900 as a leap year, so serial 60 is the non-existent 29 February 1900 and every date after it is one day further from the epoch than the arithmetic suggests. The converter accounts for it — serial 61 is 1 March 1900, as Excel shows it.
- The 1904 system, used by older Mac workbooks, where serial 0 is 1 January 1904. The workbook says which it uses, and the converter reads that flag.
What it reads
- Every sheet. Pick one from the Sheet menu; hidden sheets are listed and marked.
- Text in all of Excel's storage forms — shared strings, inline strings and rich text with mixed formatting, which is flattened to its characters.
- Formulas as the value Excel last calculated and saved. A workbook produced by a library that never calculated its formulas has no saved value, and those cells come out empty.
- Error values such as
#DIV/0!as their text. - Gaps. Empty rows and columns inside the data are kept so everything stays aligned; trailing empty rows are dropped.
The CSV it writes
Comma-separated with CRLF line endings, as RFC 4180 specifies, in UTF-8. A field is quoted
when it contains a comma, a quote, a line break or leading or trailing space, and quotes inside
it are doubled. Booleans are written TRUE and FALSE, the way Excel's
own CSV export writes them. Numbers are written to the 15 significant digits Excel itself
works to, so the binary residue Excel hides on screen (0.30000000000000004) stays
hidden in the file.
What it cannot read
The old binary .xls format (Excel 97–2003), password-protected workbooks and
OpenDocument .ods files are recognised and refused with a message — save them as
.xlsx first. Formatting, colours, comments and charts have no CSV equivalent and
are not carried over. Merged cells keep their value in the top-left cell only, which is how
Excel stores them.
Common questions
Why do my dates come out as numbers in other converters?
Excel stores a date as a serial number of days and shows it as a date through a number format. A converter that ignores the format writes the serial number. This one reads the format and writes ISO 8601 dates.
Can I convert a sheet other than the first?
Yes. Every sheet in the workbook is listed in the Sheet menu, including hidden ones, and the CSV updates when you pick another.
Is my spreadsheet uploaded?
No. The .xlsx file is unzipped and read by JavaScript in your browser; nothing is sent anywhere.
Does it work with .xls files?
No — .xls is a different, older binary format. Open the file in Excel or LibreOffice and save it as .xlsx, then convert that.
What happens to formulas?
Each formula cell is written as the value Excel last calculated and saved with the workbook. The formula itself is not written, because CSV has no way to express one.
Related
- /excel-to-json-converter — the same workbook as typed JSON records.
- /csv-to-excel-converter — the reverse: CSV into a workbook that keeps leading zeros.
- /csv-to-json-converter — carrying the CSV on to JSON.
- /excel-sample-data — generating spreadsheet test data from a schema.
Last updated