CSV to Excel Converter

Paste CSV or open a file — download a proper .xlsx workbook with a frozen, filterable header.

Your data is turned into a spreadsheet by this page, in your browser. Nothing is uploaded.

🔒 Runs entirely in your browser — nothing you type is uploaded or stored on a server.

Paste CSV into the box, or open a .csv file, and press Download .xlsx. You get a genuine Excel workbook — not a CSV renamed to .xlsx — that opens in Excel, Google Sheets, Numbers and LibreOffice without the import wizard.

Also on Txtset: turn the same CSV into JSON · build a CSV from a plain list · turn a picture of a table into a spreadsheet.

Why not just open the CSV in Excel? Because Excel guesses, and it guesses wrong in ways you notice too late. It strips the leading zero off a ZIP code like 02134, turns a 16-digit card or account number into 4.53E+15 and loses its last digits for good, reads 1-2 as a date, and splits a file saved with semicolons into one long column. This page decides each cell itself: a value becomes a number only when it is written the way a number is written and fits in the 15 digits Excel can hold exactly. Everything else stays text, character for character.

When the first row is a header, it is made bold, frozen so it stays on screen as you scroll, and given filter buttons. Columns are sized to their contents. The separator — comma, semicolon, tab or pipe — is detected from the data and shown, and quoted fields with commas, line breaks or doubled quotes inside them are read correctly.

Nothing you paste or open is uploaded: the workbook is assembled by this page, in your browser, and handed straight to your downloads. A cell that starts with = is stored as text, never as a formula, so a CSV from somewhere you do not trust cannot run anything when you open the result.

How to use

  1. Paste CSV into the box, or press Open a .csv file.
  2. Check the preview. If the columns look wrong, pick the separator yourself; if accents look garbled, switch the file encoding to Windows.
  3. Leave First row is a header on to get a bold, frozen, filterable top row.
  4. Name the sheet and the file, then press Download .xlsx.

Examples

zip column holding 02134
Stays 02134 as text. Opening the CSV directly in Excel would show 2134.
4539578763621486
Kept as text with all 16 digits. As a number, Excel would round it to 4539578763621480.
1250.50, -3, 6.02e23
Stored as real numbers, so you can sum and sort them straight away.
name;city (semicolon file from a European Excel)
Detected as semicolon-separated and split into columns.

Frequently asked questions

Is this a real .xlsx file?
Yes — an Office Open XML workbook, the format Excel has saved by default since 2007. It is not a CSV with a different extension, so Excel opens it without a warning.
Why do my leading zeros survive here but not in Excel?
Excel converts anything that looks like a number when it opens a CSV. This page only stores a value as a number when it has no leading zero, no spaces and no more than 15 significant digits — the most Excel can hold without changing it. ZIP codes, phone numbers, IDs and card numbers stay text.
Will formulas in my CSV run?
No. Every cell is written as either a plain number or plain text. A value like =HYPERLINK(…) appears in the cell exactly as typed and does nothing, which protects you from the CSV-injection trick.
How big a file can it handle?
Tens of thousands of rows are fine; the limit is your browser’s memory. The preview shows the first 50 rows but the workbook gets every one. A single cell longer than Excel’s 32,767-character limit is cut, and the page tells you how many were.
My accents come out as strange symbols.
The file was saved in the older Windows encoding rather than UTF-8. Set File encoding to Windows (Western, 1252) and it is re-read at once.
Can I go the other way, Excel to CSV?
Excel and Google Sheets both do that with Save as / Download → CSV. For JSON instead of a spreadsheet, use CSV to JSON.
Is my data uploaded?
No. The CSV is read and the workbook built entirely in your browser. Nothing is sent anywhere.