Convert CSV to XLS
This is the conversion where two formats disagree about size. A CSV can be any length at all; the legacy .xls stops at 65,536 rows per sheet. Most data files people convert are far below that and nothing goes wrong, but a log export or a database dump can exceed it easily, and the failure is truncation rather than an error.
Use this without the search next time. Prathom Workbench puts Prathom's tools in your toolbar.
Add to Chrome — freeDrop your CSV file here, or click to browse
Up to 50 MB. Deleted automatically after 30 minutes.
What it does
- Output opens in software that predates the 2007 formats
- Types inferred from content as the file is read
- Sheets cannot exceed 65,536 rows or 256 columns in this format
How to use CSV to XLS
- 1
Count the rows first
If the file is anywhere near 65,000 lines, this format cannot hold it and .xlsx or the CSV itself is the better answer.
- 2
Upload the CSV
Quoting rules are applied, so fields containing commas stay as single cells.
- 3
Open the result and check the last row
Compare it against the end of the CSV. Truncation is quiet, and this check takes seconds.
How it works
The CSV is parsed with full quoting rules and each row is written into a new single-sheet workbook in the legacy binary format. As each cell is written, a type is inferred from its text, because a spreadsheet cell needs one and a CSV supplies none.
The conversion is straightforward. What is not straightforward is the size question, which is the reason this page leads with it.
Two formats that disagree about scale
A CSV is a text file. It has no row limit, no column limit and no notion of a sheet; a file with three million lines is simply a large file.
The legacy .xls has a fixed structure with a hard ceiling of 65,536 rows and 256 columns. Data beyond that has nowhere to be stored.
The dangerous part is the failure mode. Some tools refuse; others write what fits and stop, producing a file that opens cleanly and is missing most of the data.
The check that takes ten seconds
Count the lines in the CSV before converting. If the number is anywhere near 65,000, pick a different target. After converting, jump to the end of the sheet and confirm the last row matches the last line of the source.
Better targets, when available
XLSX if the destination will take it: over a million rows, smaller files, current software. The CSV itself if the destination only needs the data, since it has no limits and every tool reads it. Choose .xls only when something genuinely refuses both.
The row limit is a real ceiling, not a warning
The legacy .xls format stores at most 65,536 rows per sheet. That is a hard
structural limit in the file format, not a setting, and a CSV has no limit at all.
A file larger than that cannot be represented, and what happens next depends entirely on the software: some refuse, some stop at the boundary and say nothing. The second is the dangerous one, because the result opens perfectly and simply does not contain the end of your data.
Count the lines before converting anything substantial. If it is over the ceiling,
.xlsx raises it past a million rows and is the format to use instead — the only
reason to choose .xls is software that cannot read anything newer.
Examples
A small export for an old instrument
Well inside every limit, which is the case this conversion is for. The lab software accepts .xls and nothing else, and the data arrives typed and usable.
A log export that will not fit
Over three times the ceiling. Split the file, convert to .xlsx if the destination will take it, or leave it as CSV, which has no limit at all.
Frequently asked questions
What is the actual row limit?
65,536 rows and 256 columns per sheet. These are structural properties of the legacy format rather than of any application, so no setting raises them. Because some tools truncate silently instead of refusing, the safe habit is to check the row count of the source before converting and to compare the last row of the output afterwards.
Why not just convert to XLSX?
You should, unless something specifically refuses it. The newer format allows over a million rows, produces smaller files, and is what current software expects. The only reason to choose .xls is a destination that will not accept anything else, which still describes a good number of laboratory instruments, industrial controllers and older internal systems.
Will my leading zeros survive?
Not where a column is inferred as numeric, because a number cannot hold a leading zero. This affects codes, references, postcodes and phone numbers exactly as it does in any spreadsheet import. If those values matter, format the column as text after conversion and re-enter them, or ensure the source values cannot be read as numbers.
Further reading
- XLSX Cost 14% More Than the CSV and the Old XLS Cost Nearly Four TimesThe modern spreadsheet formats have a reputation for bloat that they no longer deserve, and the old one has a reputation for compactness it never had. A plain table in four formats puts numbers on both, and the ranking is not the one most people would guess.
- We Sent a CSV Through a Spreadsheet and Watched What DiedOpen a CSV in a spreadsheet, change nothing, save it again, and the file that comes out is not the file that went in. This is well known for postcodes and product codes with leading zeros. We ran a deliberately awkward CSV through the round trip to find out exactly which fields survive and which do not.
- The Three Invisible Bytes at the Start of Your CSVYour CSV has a column called `id`. Your code looks for a column called `id`. It is not there. Print the header and it says `id`. The problem is three bytes at the very start of the file that no editor displays, that Excel on Windows once needed, and that half the software in the world now has to work around.