Updated 2026-10-05 · By Sergi (spnfury)
A CSV is just text; an Excel workbook has typed cells, sheets and formatting. Converting one into the other is easy, but the method decides whether ZIP codes keep their zeros, whether accents survive and whether the file can be shared with people who only use Excel.
Here are the five methods we actually use, with the steps, the time each takes and the trap to avoid. If you only need the file once and quickly, jump to method 5.
Takes ten seconds and works for clean numeric data. The trap: anything Excel misinterpreted on opening (lost zeros, 1/2 turned into a date, garbled accents) is now permanently in the .xlsx.
Two minutes, full control over types and encoding, and the query can be refreshed when the CSV changes. The best option when the workbook is something you will maintain.
Good detection, free, works on any device. The trap: the file is uploaded to Google, which may be a problem for confidential data, and large files (over about 100 MB or 10 million cells) are rejected.
Free, offline and the import dialog is more explicit than Excel's. Minor formatting differences may appear when the file is later opened in Excel.
Thirty seconds, no software, and the conversion runs in the browser so the file is never uploaded. Leading zeros are stored as text automatically and UTF-8 is read correctly. The limit is Excel's own: 1,048,576 rows per sheet; split larger files first with Split CSV.
When the conversion happens every day, script it. pandas reads the CSV with the right encoding and dtype, and writes the workbook through openpyxl.
import pandas as pd
df = pd.read_csv('orders.csv', sep=',', encoding='utf-8', dtype={'zip': str, 'phone': str})
df.to_excel('orders.xlsx', index=False, sheet_name='Orders')
| Need | Method |
|---|---|
| Clean numeric data, once | 1. Open and Save As |
| Codes with zeros, accents, recurring file | 2. Import wizard |
| No Excel installed, non-confidential data | 3. Google Sheets |
| No Excel, confidential data, offline | 4. LibreOffice |
| Quick and private, no software | 5. CSV Creator |
| Daily or in a pipeline | Python / pandas |
CSV is plain text with one record per line and a separator between values: no types, no formatting, one table. XLSX is a zipped XML package with typed cells, several sheets, styles, formulas and charts. CSV is for exchanging data; XLSX is for working in Excel.
Yes, but it interprets the file according to regional settings and converts values silently. For anything beyond plain numbers, use the import wizard or convert to .xlsx first.
In the import wizard choose Semicolon as delimiter; in CSV Creator the separator is detected automatically; in pandas pass sep=';'. Double-clicking works only if your regional settings already use semicolons.
Use a script: a short Python loop with pandas, or PowerShell with Import-Csv and the ImportExcel module. Online tools convert one file at a time.
Excel sheets hold 1,048,576 rows and 16,384 columns. A CSV with more rows must be split into several sheets or files, or loaded into a database instead.