Excel workbooks
An .xlsx file is a zip archive full of XML. It carries far more than data — types, formatting, formulas, multiple sheets — which is both why it is useful and why converting it always loses something.
- Type information
- Per cell — text, number, date, boolean
- Structure
- Sheets of rows and columns
- Compression
- Zipped XML
- Typical file size
- Smaller than CSV, larger than Parquet
- Schema
- None beyond the header row
- Human-readable
- Only in a spreadsheet app
- Tool support
- Excel, Google Sheets, LibreOffice
ExcelCSV
Runs on your deviceOptions
Reading Excel
Auto-detect reads the first rows and picks the separator that splits them consistently.
Turn off when the file starts straight into data. Columns are then named column_1, column_2, and so on.
Turns "42" into a number and "true" into a boolean. Values with leading zeros stay text so IDs and zip codes survive.
Which worksheet to convert. Filled in once the workbook is read.
Dotted path to the array of records, such as data.items. Leave empty to use the whole document.
Turns {"user":{"id":7}} into a user.id column. Arrays are kept as JSON text.
Pick the encoding the file was written in. Wrong encoding shows up as garbled accents.
Comma-separated words that should become null instead of text.
Writing CSV
Snappy is the default across Spark, DuckDB and pandas. Gzip is smaller but slower to read.
Turns a user.id column back into {"user":{"id":7}}.
Excel needs a byte order mark to open UTF-8 files with accents correctly.
Rows per row group. Larger groups compress better; smaller groups let readers skip more.
conversion-preroll
This short ad is what keeps the converter free.
Since 2007 Excel has used the Office Open XML format: a zip container holding one XML document per worksheet, plus shared strings, styles and relationships. That structure is why an .xlsx cannot simply be renamed from a CSV, and why reading one requires unzipping and parsing rather than splitting on a delimiter.
Unlike CSV, Excel does track types per cell, which is a genuine advantage — a date is a date, not a string that looks like one. The catch is that dates are stored as serial numbers counting from 1900, so a reader that ignores the cell format shows you 45322 instead of a date. Worse is what happens on import: Excel aggressively reinterprets text that resembles a date or a number, which is how gene names became dates in published genomics papers and why product codes routinely arrive corrupted.
Converting to .xlsx directly, rather than opening a CSV in Excel, sidesteps that entirely — cell types are written explicitly, so nothing is guessed. In the other direction, the limits to keep in mind are structural: one sheet becomes one table, and formatting has nowhere to go.
What Excel is good at
- Per-cell types, so dates and numbers survive as themselves.
- Multiple sheets, formatting, and formulas in one file.
- Universally understood by non-technical colleagues.
- Zipped, so meaningfully smaller than the equivalent CSV.
Where it falls short
- Hard caps of 1,048,576 rows and 16,384 columns per sheet.
- Numbers keep only 15 significant digits, so long IDs get rounded.
- Aggressive autocorrect on import corrupts codes that resemble dates.
- Binary container — it does not diff in version control.
Convert Excel files
From Excel
To Excel