Excel to CSV

Open an .xlsx file and export any sheet as CSV, entirely in the browser.

Processed on your device — no upload

termiva xlsx2csv book.xlsx
sheets rows size nothing uploaded

How to use it

  1. Choose an .xlsx file.
  2. Pick which sheet you want.
  3. Copy the CSV, or download it.

How it works

The workbook is unzipped in memory and its XML read directly. Sheet names come from the workbook description, and each sheet is mapped to its own file through the relationship table rather than by guessing at file names — workbooks whose sheets have been reordered or deleted do not have tidy sequential names.

Most text in a workbook is not stored in the cell. Excel keeps a shared string table and cells hold an index into it, which saves space when the same value repeats thousands of times. Reading a sheet therefore means resolving those indexes, and rich text has to be reassembled from several runs into one string.

Empty cells are not stored at all, so a row jumps from column A to column E with nothing in between. Each cell carries its own reference — B7, D12 — and the gaps are filled from those, otherwise every value after a blank shifts left.

The download begins with a byte-order mark, which is what makes Excel read the CSV back as UTF-8. Without it, the Arabic you just exported correctly reopens as mojibake.

A worked example

Someone emails you a workbook and you need the data in a script. You do not have Excel installed, and the file contains customer records you would rather not upload to a converter site.

Choose the file. The sheet list appears with a row count beside each name, which is usually enough to identify the one you want without opening anything. Pick it and the CSV appears immediately.

The gap-filling matters here. A workbook where someone left column C empty for a hundred rows stores no cells for it at all. Read naively, every value from column D onwards shifts one place left and the file looks plausible while being entirely wrong. Reading the cell references instead keeps the columns aligned.

What does not come across: formulas arrive as their last computed value, not as the formula. Formatting, colours, merged cells and multiple header rows are all lost, because CSV has nowhere to put them. Dates may appear as Excel serial numbers — 45,678 rather than a date — since a date in Excel is a number wearing a format.

If the result needs tidying, the CSV cleaner handles the stray spaces and blank rows that spreadsheets accumulate. To go back the other way, CSV to Excel builds a workbook.

Questions

Is my workbook uploaded?

No. It is unzipped and parsed in your browser. Nothing is transmitted, which matters given that workbooks usually contain exactly the data you should not be uploading.

Does it support the old .xls format?

No. The old binary format is entirely different. Open it in any spreadsheet program and re-save as .xlsx first.

What happens to formulas?

You get their last calculated value, which is what Excel stored. The formula itself is not carried into CSV, which has no concept of one.

Why do my dates look like numbers?

Because a date in Excel is a number with a display format applied. CSV has no formatting, so the underlying serial number is what appears.

Can I get more than one sheet?

One at a time. Switch the sheet selector and download each — CSV has no way to express multiple sheets in one file.

Why does the download start with an invisible character?

It is a byte-order mark, and it is what makes Excel read the file back as UTF-8. Without it, Arabic and accented text reopen as mojibake.

Are merged cells handled?

The value appears in the first cell of the merge and the rest are blank, which is how the workbook actually stores it.

Is there a size limit?

No fixed limit, but the workbook is decompressed entirely into memory. Very large files may exhaust a phone before a laptop.

Which Excel formats can I start from?

XLSX to CSV is the normal path, and .xlsm works too since it is the same container with macros attached. The older binary .xls is not readable here — open it in Excel or LibreOffice once and save it as .xlsx first.

What comes out, and can I read the Excel to CSV file in anything?

Plain comma-separated text with a UTF-8 marker at the front, which is what makes accented characters survive. Every spreadsheet, database importer and script reads it.