Excel to CSV

Split a workbook into one CSV per sheet, reading the file in this tab rather than uploading it.

Runs on your deviceDataWorkingNo account needed

What this tool does

Excel to CSV unzips the workbook package in the browser and reads the sheet XML directly: shared strings, inline strings, rich-text runs, booleans as TRUE and FALSE, and the cell styles that mark which numbers are meant to be dates. Every sheet becomes its own CSV by default, written with CRLF line endings and RFC-style quoting, so a cell containing your delimiter, a double quote or a line break is wrapped and its inner quotes doubled rather than breaking the row.

Naming follows the workbook. With more than one sheet in play, each sheet export is named accounts - Q1.csv after the file and the tab it came from, characters that filenames reject are replaced with spaces, and two tabs with the same name get a numbered suffix instead of overwriting each other. A workbook with a single sheet, or the first sheet only setting, produces one file named after the workbook alone. When more than one CSV comes back, each is listed with its own Save button and a single Download all as ZIP button sits underneath the list.

Date cells are the one value the converter rewrites. A cell whose number format says it is a date is turned into 2024-03-01, into 2024-03-01 09:30:00 when it carries a time, and into 09:30:00 when there is no date part; 1904-epoch workbooks are handled, as is Excel's belief in a 29 February 1900. Switch Date cells to raw Excel numbers and the underlying serial, 45352, comes through untouched for a pipeline that would rather do its own arithmetic.

Everything else is exported as stored rather than as displayed, and that is the limit to know before you rely on the output. CSV carries no number formats, so a cell showing £1,234.50 lands as 1234.5, a cell showing 12% lands as 0.12, and a figure rounded to two decimals on screen arrives at its full stored precision. Formulas are not carried across either: what you get is the result Excel cached when it last saved, and a cell written by a generator that stored no cached result comes out empty. Colours, fonts, borders, charts, images, comments and merged-cell spans have nowhere to go in a text file — the value in a merged block sits in its top-left cell and the rest of the block is blank. Nothing filters by visibility, so hidden sheets, rows and columns are exported like everything else, which is worth checking before you pass the files on.

How to use it

  1. Choose the workbooks. One .xlsx or .xlsm file, or several — each is read in turn and contributes its own CSVs to the results. Nothing is uploaded; the parsing happens in this tab.
  2. Decide how many sheets you want. Every sheet writes one CSV per tab. The first sheet only writes a single file, useful when a workbook carries twenty reference tabs you have no interest in.
  3. Choose how dates come out. ISO dates for anything a human or a database will read, raw Excel numbers when the receiving system expects serials and will convert them itself.
  4. Set the output delimiter. Four characters are on offer: a comma, a semicolon, a tab or a pipe. Semicolon fits the European convention where the comma is a decimal mark, and a tab keeps prose columns free of quote marks.
  5. Leave or lift Drop trailing empty rows. On by default, it removes the blank rows at the bottom that a formatted sheet leaves behind. Untick it when the exact row count matters more than tidiness.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Loading a spreadsheet into a script

pandas, R, a COPY statement and most import endpoints read CSV without argument, where an .xlsx needs a parsing library first.

Pulling one tab out of a large workbook

A monthly report with a dozen tabs becomes a dozen named files, so the one you actually need can be handed on without the rest.

Tracking a sheet in version control

An .xlsx is a zip, so git records only that the binary changed. CSV is line-based, and a diff shows which rows and cells moved.

Feeding a system that wants semicolons

Some finance and government upload forms reject comma files outright. Setting the delimiter here avoids a round trip through a text editor.

Questions

Is my workbook uploaded?
No. The package is unzipped and the sheets parsed by code running in this browser tab, so the workbook never travels beyond the tab and nothing about it is logged or kept. The only thing fetched over the network is the page and its unzip library, both served from this site.
Can it open .xls, .ods or Numbers files?
No, only .xlsx and .xlsm. A legacy .xls is recognised by its container signature and refused with a message asking you to re-save it as .xlsx, and any other non-zip file is rejected as not being a workbook at all.
What happens to formulas?
You get values, not formulas. Excel saves the last calculated result alongside each formula and that cached result is what is exported. A workbook written by a tool that stored formulas without cached results will produce empty cells there, which is a sign to open it in a spreadsheet app, recalculate and save before converting.
Why do my currency and percentage cells look wrong?
Because they were only ever formatting. The underlying number is what is stored and what is exported, so a percentage becomes its decimal and a currency cell loses its symbol and thousands separators. Date cells are the single exception, and they are converted only when their number format says they are dates — a date typed as text stays exactly as typed.
Can I convert a workbook that asks for a password?
No. An encrypted workbook is wrapped in the old compound-file container rather than a zip, so it cannot be read here, and because that is the same container legacy .xls uses, the error will name it as one. Remove the password in Excel, save a copy and convert that.
Are blank rows preserved?
Blank rows inside the sheet are kept as empty lines so the row numbering still matches the original, and each row is then squared off to the column count of the longest one so the fields stay aligned. Only the empty rows trailing at the end are removed, and only while Drop trailing empty rows is ticked.
Will Excel open the CSV with accents intact?
The files are written as UTF-8 without a byte-order mark. Most tools read that correctly, but double-clicking a CSV in Excel on Windows can still fall back to a legacy code page and mangle accented characters. Import it through Data then From Text/CSV and choose UTF-8, or open it in a tool that assumes UTF-8 to begin with.
How large a workbook can it take?
There is no imposed ceiling, but the whole package is decompressed in memory and the CSVs are built there too, so the practical limit is your device. A workbook of a few tens of megabytes will make the tab work for it.

Related tools

  • JSON to CSV — Flatten a JSON array into a CSV table.
  • CSV to JSON — Turn a CSV file into structured JSON.
  • CSV Viewer — Open and browse a large CSV without a spreadsheet app.
  • CSV to Excel — Convert CSV files into an XLSX workbook.
  • CSV Merge — Combine multiple CSV files with matching columns.
  • CSV Split — Split a large CSV into smaller chunks.