XLSX→CSV

Convert XLSX to CSV

Turn an Excel .xlsx workbook into plain CSV — right in your browser. Reads the workbook's real ZIP+XML structure, lets you pick which sheet if there's more than one, and downloads a clean, properly-escaped CSV. Nothing is uploaded.

Runs 100% in your browser Multi-sheet support RFC 4180 output

Convert an XLSX File to CSV

Drop an .xlsx file below. It's read using the same from-scratch ZIP and XML parser as our XLSX viewer tool — every sheet is decoded right in your browser, previewed, and ready to convert and download as CSV.

Before you use this tool: Choose one sheet to export. The CSV uses stored cell values, not Excel formatting: dates may become serial numbers and percentages may become decimal fractions. Formula results come from saved values and are not recalculated. For displayed dates, use the Excel export method below or prepare a TEXT column first.

🔒 Nothing is uploaded — your file never leaves this device

How the XLSX-to-CSV conversion works

An .xlsx file is a ZIP archive of XML — this tool reads it the same way a spreadsheet program does, rather than treating it as an opaque binary blob:

  • ZIP central directory reader — locates and reads every entry inside the workbook archive from scratch, decompressing deflated parts with the browser's native DecompressionStream.
  • SpreadsheetML parsing — reads xl/workbook.xml for the sheet list, the shared-strings table for text values, and each worksheet's cell grid, resolving cell types (string, number, boolean, inline string, formula result) the same way Excel does.
  • CSV writing — every cell value is escaped per RFC 4180 (quoting values that contain a comma, quote or line break) before being written to the output.

Why convert XLSX to CSV

CSV is the universal format almost every program, database and script can import without needing to understand Excel's binary/ZIP structure at all. Converting an .xlsx report or export to CSV is usually the first step before loading it into a database, a script, or any tool that only speaks plain delimited text.

Edge cases this tool handles

Multiple sheets

Each sheet is decoded separately — pick the one you need from the tabs above the preview and convert it on its own.

Formula cells

Converted using the last-calculated value stored in the file (the same number Excel displays), since CSV has no way to represent a live formula.

Shared strings and inline strings

Excel stores repeated text values in a shared table for efficiency, and one-off text inline — both are resolved correctly to the actual text.

Very large sheets

The tool converts every row of a sheet (up to Excel's own limit of 1,048,576 rows) and up to 2,000 columns; on extremely large sheets it stops at about 30 million cells to keep the browser responsive and tells you when it has done so. For bigger sheets, use Excel's Save As or the pandas one-liner further down this page.

Save as CSV from Excel, Google Sheets or Numbers

Excel: CSV UTF-8 vs CSV (Comma delimited)

In Excel for Windows, use File > Save As (or Save a Copy), click Browse, and open the Save as type list. Two entries look almost identical:

  • CSV UTF-8 (Comma delimited) (*.csv) — saves every character correctly (accents, Chinese, emoji) and adds a byte-order mark so Excel recognizes the encoding when it reopens the file. Pick this one by default.
  • CSV (Comma delimited) (*.csv) — saves in the legacy Windows code page. Characters outside it are replaced with ?, and other programs reading the file as UTF-8 show accents as �. Only use it if the receiving system specifically asks for "ANSI" or Windows-1252.
Part of Excel's Save as type list on Windows: CSV UTF-8 keeps every character, while the plain CSV, Macintosh and MS-DOS variants use older encodings.

Three things to know before you click Save:

  • Only the active sheet is saved. Excel warns that the file type doesn't support multiple sheets; switch tabs and save again for each sheet you need.
  • Excel writes what you see, not what's stored. A cell formatted to show 3.14 but holding 3.14159 is saved as 3.14; dates and currency are written in their displayed format. Widen the number format before saving if you need full precision.
  • The separator follows your regional settings. On a computer set to a region that uses a decimal comma, "CSV" files come out separated by semicolons, because Excel uses the Windows List separator setting.

Excel for Mac has the same choice under File > Save As > File Format: pick CSV UTF-8 (Comma-delimited) (.csv).

Google Sheets and Numbers

In Google Sheets, open the tab you want and choose File > Download > Comma Separated Values (.csv); it exports only the current sheet, always as UTF-8. In Numbers on a Mac, use File > Export To > CSV; when a spreadsheet has several tables, Numbers can export each one as its own CSV file, and the advanced options let you choose the text encoding.

Every sheet at once, from the command line

Neither Excel nor this tool saves all sheets in one go. pandas does, writing one CSV per sheet named after the tab (requires pip install pandas openpyxl):

A pandas one-liner that exports every sheet of a workbook to its own CSV file. Add dtype=str inside read_excel to keep codes such as 02134 as text.

With LibreOffice installed, soffice --headless --convert-to csv q3-sales-report.xlsx converts the first sheet without opening a window — handy for scripts and servers.

Dates, percentages and decimals in the output

This converter writes the value that's actually stored in each cell, not Excel's formatted display — the opposite of Excel's own Save As. In practice:

Cell shows in ExcelStored value written to the CSV
10/1/202646296
25%0.25
$1,250.001250
3.143.14159

That's ideal for loading into a database or script, because no precision is lost and nothing depends on locale formatting. The one thing to watch is dates: Excel stores them as the number of days since its 1900 date system began, so 46296 means October 1, 2026. Format the column as a date after importing the CSV into a spreadsheet, convert it in code (pandas: pd.to_datetime(df["date"], unit="D", origin="1899-12-30")), or, if you want the dates as text in the CSV itself, add a helper column in Excel with =TEXT(A2,"yyyy-mm-dd") before converting.

Frequently asked questions

Does converting XLSX to CSV upload my file anywhere?

No. The workbook is read and converted entirely inside your browser — a from-scratch ZIP and XML reader, no library, no server. The file's contents never leave your device.

What happens to formulas when converting to CSV?

Formula cells are converted using their last-calculated value, the same value Excel itself stores and displays — not the formula text. CSV has no concept of formulas, so this is the only way to represent a calculated cell in the output.

What happens to a workbook with multiple sheets?

CSV can only represent one flat table, so with a multi-sheet workbook you pick which sheet to convert and download; each sheet has to be converted and downloaded separately, since there's no single CSV that could hold all of them at once.

Does formatting, like cell colors or column widths, carry over?

No — CSV is plain text with no concept of formatting, so only the actual cell values are preserved. This is inherent to the CSV format, not a limitation of this specific tool.

What's the difference between CSV UTF-8 and CSV (Comma delimited) in Excel?

CSV UTF-8 stores every character correctly and adds a byte-order mark so Excel can recognize the encoding. CSV (Comma delimited) uses the old Windows code page, so characters it doesn't cover are replaced with question marks and accents can break in other programs. Choose CSV UTF-8 unless the system you're feeding specifically requires ANSI.

Why do dates turn into numbers like 46296 in my CSV?

Excel stores dates as serial day numbers and only shows them as dates through cell formatting. This converter writes the stored value, so October 1, 2026 becomes 46296. Format the column as a date after import, or add a =TEXT(A2,"yyyy-mm-dd") column before converting.

How do I save every sheet of a workbook as a separate CSV?

Excel and Google Sheets export one sheet at a time, and so does this tool (pick each tab and download it). To export all sheets at once, run pd.read_excel('book.xlsx', sheet_name=None) in pandas and write each returned sheet with to_csv, as shown in the one-liner above.

Why does Excel save my CSV with semicolons instead of commas?

Excel uses the List separator from Windows' regional settings, which is a semicolon in regions that write decimals with a comma. Either change the list separator in the Windows region settings, or convert the .xlsx here, which always writes commas.

Last updated October 1, 2026.