Excel's own Save As CSV and this converter
Excel can save a sheet as CSV itself. The result differs from this converter in ways that surprise people:
- Encoding: Excel's plain CSV (Comma delimited) choice writes your system's legacy code page, often Windows-1252, not UTF-8. Newer versions also offer CSV UTF-8. This converter always writes UTF-8.
- One sheet only: Excel saves just the active sheet. Here you can pick any sheet, or get all of them as a ZIP.
- Delimiter: Excel uses the list separator from your regional settings, which is a semicolon in many European countries. Here you choose the delimiter.
- What is written: Excel writes each cell the way it is displayed, so 25.5% stays 25.5% and a date keeps its on screen format. This converter writes the stored value instead: 0.255 and 2024-01-15. That suits software that reads the file, and it is the wrong choice if you want exactly what you saw on screen.
What is read from each cell
- Numbers are the stored number, not what is displayed. A price shown as $1,234.50 comes out as 1234.5. Numbers with decimals are rounded to 15 significant digits, the precision Excel itself keeps, so a result such as 0.30000000000000004 is written as 0.3.
- Text is copied exactly, including leading zeros typed into a text cell. A number that only looks like 00123 because of a custom number format is stored as 123, and 123 is what you get. The codes Excel uses inside text for characters XML cannot hold (such as _x000D_ for a carriage return) are turned back into those characters.
- Formulas give the result saved in the file. Excel stores the last calculated result next to every formula, and that is what is read. A workbook written by a program that never calculated has formulas without results, and those cells come out empty. Nothing is recalculated here.
- TRUE and FALSE are written as true and false.
- Errors such as #DIV/0! and #N/A come out as empty cells.
- Hidden sheets, rows and columns are read like any others.
- Merged cells have a value only in their top left cell. The other cells of the merge are empty.
- Charts, images, comments, colors, fonts and column widths are ignored.
- A damaged workbook is refused with a message. Every part of an .xlsx file carries a checksum, and a part that no longer matches means the cells could be wrong.
Rows with no content are skipped, and a note says how many. The first row with content is used as the header. Turn the header option off to get column1, column2 and so on instead.
How Excel dates and times are converted
Excel stores a date as a number: the days since 30 December 1899, with the time of day as a fraction (0.5 is noon). Whether a cell shows a date or only a number depends on its number format alone, so 45355 is a date in one cell and an ordinary number in the next. This converter reads the number format of every cell. A cell with a date or time format becomes text, and a cell with the General format stays a number. Formats written without separators, such as yyyymmdd, ddmmyyyy or hhmmss, count as dates and times too.
- A date becomes
2024-03-04. - A date with a time becomes
2024-03-04T10:30:00.000Z. Excel keeps no time zone, so the clock time in the cell is written as it is. The Z is only ISO 8601 notation, not a conversion. - A time without a date becomes
09:30:00. - Workbooks that use the older 1904 date system, which some Mac files do, are read correctly.
- Dates before 1 March 1900 follow Excel's own count, which includes a 29 February 1900 that never existed, so day 1 is 1900-01-01.
Durations longer than 24 hours, shown with a format such as [h]:mm, are counted as dates around 1900, so they come out as a timestamp. Change those cells to plain numbers, for example hours as a decimal, before you convert.
Several sheets and large workbooks
A CSV file holds one table, so one sheet is converted at a time, and the sheet list lets you switch. All sheets at once saves every sheet as its own file in a ZIP, named after the workbook and the sheet, such as sales-Orders.csv. Sheets with no data are left out and listed, and every file uses the options on the page.
Speed depends on your device. In our tests on a laptop, a workbook with 50,000 rows by 10 columns was read and written as CSV in about 0.4 seconds, and 200,000 rows took about 1.8 seconds. The largest sheet Excel allows, 1,048,575 rows by 3 columns, took about 4 seconds to read and roughly 1.3 GB of memory. Phones and older computers will manage less, and the page does not respond while it works.