Code and data

CSV to Excel converter

Open a CSV or paste one, name the sheet, and download an .xlsx workbook that Excel, Google Sheets and LibreOffice open. Drop an .xlsx or .xlsm file to read its sheets and download one of them as CSV.

Paste CSV

Runs in your browser. Nothing you type or open is uploaded. Free to use, no account. More code and data tools

How to use it

  1. Open a CSV or an .xlsx file, or paste CSV text.
  2. For a CSV, set the sheet name. For a workbook with several sheets, pick the sheet.
  3. Download .xlsx or Download CSV.

What is inside the workbook

The file is a real Office Open XML workbook: a ZIP of SpreadsheetML. Each CSV row becomes a row on the sheet. A cell that is a plain number is stored as a number, so Excel can add the column. Text, including anything that starts with =, stays text. A leading zero stays, so a postcode or an id is unchanged.

Reading an .xlsx file returns every sheet. A date that Excel stored with a date format comes back as YYYY-MM-DD. A sheet can hold 1,048,576 rows and 16,384 columns. An older .xls file needs to be saved as .xlsx first.

Private by design

Privacy

Everything runs in this page and stays on your device. The workbook is built in this tab, and closing the tab clears it.

This page also shows Google ads, which can use cookies. Privacy and cookies explains how.

Questions

Will Excel open the file?

Yes. The download is an .xlsx workbook, the format Excel, Google Sheets and LibreOffice open.

Why is a phone number still text?

A value that starts with zero, or that is too long to be a safe number, is stored as text so the digits survive.

Can I convert several sheets?

Opening an .xlsx file lists its sheets. Pick one and download it as CSV. A CSV becomes one sheet, using the sheet name you type.

What about a date?

A date Excel saved with a date format is written as YYYY-MM-DD. A number with no date format stays a number.

Is an .xls file from 2003 supported?

Save it as .xlsx in Excel or LibreOffice, then open that file. The old binary format is a different container.

From the same developer