All processing happens in your browser. Your file is never uploaded to any server.

Click to select or drag & drop an .xlsx or .xls file

All conversion runs in your browser. Your data is never uploaded to any server.

Excel to CSV

This free Excel to CSV converter turns an .xlsx or .xls workbook into a .csv file entirely in your browser. Drop the file in, pick the worksheet you actually want, check the preview, and download. There is no sign-up, no queue, and your file never leaves your device.

Converting Excel to CSV sounds like the easy direction, and that is exactly why it goes wrong quietly. A workbook has several worksheets, but CSV holds one table; a workbook knows that 007 is text and 128.50 is money, but CSV carries no type at all; and the same Chinese text opens perfectly in Google Sheets and comes out as gibberish in Excel, depending on three invisible bytes at the start of the file. This page makes every one of those decisions visible before you download.

How to use this Excel to CSV converter

Output encoding: the BOM, and why your Chinese turns into garbage

A byte-order mark is three bytes — EF BB BF — written at the very start of a file. UTF-8 does not need one: the byte order of UTF-8 is fixed by definition. Excel, however, uses its presence as a hint. On Windows, when you double-click a .csv, Excel decides how to decode it, and without a BOM it falls back to the machine's legacy code page — Windows-1252 on a US or UK install, GBK on a Chinese one. That is why the same file shows 上海 correctly in Google Sheets and Notepad but arrives in Excel as 涓婃捣 or a row of question marks. It is not corruption: it is Excel reading UTF-8 bytes through the wrong code page.

SettingWhat lands in the fileUse it when
UTF-8 with BOM (default)EF BB BF at the start, then UTF-8 bytesYou will open the CSV by double-clicking it in Excel on Windows, or mail it to someone who will. This is the setting that stops mojibake.
UTF-8 (no BOM)Pure UTF-8, nothing prependedThe CSV goes to Google Sheets, a database import, pandas, a git repo, or any script. Some command-line tools print a stray  in front of the first column name when a BOM is present.
UTF-16 LE with BOMTwo bytes per character, plus FF FEA legacy system insists on UTF-16. Excel and Google Sheets both read it; most command-line tools do not, and the file is roughly twice the size.

One honest limit: browsers can only encode Unicode themselves, so this page offers UTF-8 and UTF-16 output. It does not write GBK, Big5 or Shift_JIS, because shipping a legacy code-page table would mean bundling a large mapping into a page that is supposed to load fast and work offline. If you truly need a legacy code page, export UTF-8 with BOM here and use Save As inside Excel to pick the code page.

What this tool supports

Worksheets

CSV is a single table, so one worksheet is exported at a time. When the workbook has more than one sheet, the picker lists every sheet with its row count and the note under the preview states how many sheets were found — the first sheet is only used because you have not picked another one yet, and it says so. Empty sheets and sheets that are nothing but formatting produce an empty result rather than a fake header.

Delimiters

Comma, semicolon, tab and pipe, plus any single custom character. Fields containing the delimiter, a double quote or a line break are quoted automatically, and a quote inside a field is doubled, so the file stays parseable by Excel and by every CSV library. Choose CRLF for Windows and Excel, LF for Unix, macOS and most repositories.

Headers

With First row is header on, the first row of the worksheet is written as the header line. Turn it off and the tool writes generated names — Column 1, Column 2 and so on — and keeps every worksheet row as data, which is what you want for exports that have no header row.

Leading zeros and long ID numbers

By default, values are written as displayed in the file: this tool takes the text Excel itself was showing in the cell, so a zip code stored as text stays 01234, an extension stored as the number 7 with the format 000 comes out as 007, and a 16-digit card number is not rounded into 1.23457E+15. Set Values to Raw stored values if you want the underlying numbers instead, including Excel date serials.

There is a second trap behind that one. CSV carries no type information at all, so when you open the downloaded file, Excel re-reads those digits and may turn 007 back into 7. Nothing in the file changed — the CSV still says 007. To survive the reopen, switch Leading zeros to Protect in Excel: affected values are written as ="007", which Excel evaluates to the text 007. Use it when the CSV is going to be double-clicked in Excel; leave it off when a script or a database is the next reader, because they will see the formula text literally.

Dates

Dates are not reformatted and not guessed. 03/04/2026 is 3 April in one country and 4 March in another, and no converter can know which one you meant, so this tool writes the date exactly as the workbook displayed it — that is Excel's own formatting, not a guess made here. If the dates look wrong in the CSV, they were formatted that way in the workbook: change the cell format in Excel and export again. With Values set to raw, a date becomes the serial number Excel stores, such as 46085.

Formulas, merged cells and everything CSV cannot hold

Formula cells are exported as their last saved result, the value Excel cached in the file — this page does not recalculate a workbook. Only the top-left cell of a merged range holds a value; the rest come out empty. Cell colours, comments, images, charts, conditional formatting and data validation are dropped, because CSV is plain text and has nowhere to put them.

Privacy

The file is read with the browser's own file reader and converted in the page. There is no upload endpoint, no account, and no stored history. You can disconnect from the internet after the page loads and it will still work.

Limits

FAQ

Is this Excel to CSV converter free?

Yes. Free, no login, no usage cap, and everything runs in your browser. For the other direction see the CSV to Excel converter, and for other formats the CSV to JSON, JSON to Excel, XML to JSON and JSON to XML converters, plus JSON to CSV on the home page.

Do I have to upload my Excel file?

No. The workbook is read locally with the browser's file API and converted in the page. Nothing is uploaded, logged or stored, and you can go offline after the page loads.

Can I convert XLSX to CSV, and the older XLS as well?

Both. .xlsx and .xls (Excel 97-2003) are read the same way; .xlsm workbooks are accepted too, with macro code discarded as CSV cannot carry it.

My workbook has several sheets. Which one becomes the CSV?

The one you pick in the Worksheet list — every sheet is listed with its row count. A CSV holds one table, so exporting several sheets at once is not offered. If the workbook has more than one sheet, the note under the preview names the sheet being exported so you can confirm it.

Why does my Chinese text look like garbage in Excel?

Because Excel decoded UTF-8 bytes using your machine's legacy code page. Switch Encoding to UTF-8 with BOM and export again — Excel uses the byte-order mark to recognise the file as UTF-8. The full explanation is in the encoding section above.

What is a BOM, and should I keep it?

A byte-order mark is three bytes at the start of the file that mark it as UTF-8. Keep it when a human will double-click the CSV in Excel on Windows. Drop it when a script, a database import or a git repository is the next reader, since some tools show a stray  before the first column name.

Will 007 stay 007?

In the CSV, yes — values are written as the workbook displayed them, so leading zeros and 16-digit identifiers survive. If you then open that CSV in Excel and the zeros vanish, that is Excel re-reading a type-less file, not this converter losing them; switch Leading zeros to Protect in Excel to write those values as ="007".

Does it change my dates?

No. Dates are written exactly as the workbook displayed them. This tool never guesses whether 03/04/2026 is March 4 or April 3 — if you need a different format, change the cell format in Excel and export again.

What happens to formulas?

The last saved result is exported, which is the value stored in the workbook. Nothing is recalculated here, so make sure the file was saved after its last recalculation in Excel.

Why can I only export one sheet, and what about the delimiter?

CSV is a single flat table, so one worksheet per file. For the separator, comma is the default; choose semicolon when your locale uses a comma as the decimal separator, and tab or pipe when the system receiving the file expects them.

Is there a file size limit?

No imposed limit — conversion runs in your browser's memory, so large workbooks depend on your device. The row ceilings you may hit belong to the .xlsx and .xls formats themselves.

Can I convert CSV back to Excel?

Yes — the CSV to Excel converter is the reverse of this page and uses the same delimiter, header and value rules.