CSV is one table and nothing else, with no formulas and no cell formatting. XLSX is an Excel workbook with several sheets, formulas and cell formats. LibreOffice sits between the two, and this page says exactly what happens to a CSV file on the way to becoming an XLSX one.
What runs when a CSV file becomes XLSX
LibreOffice 24.2, on a machine we rent and watch. Your CSV file is uploaded once, LibreOffice runs once, the XLSX comes back, and neither file is kept. CSV to XLSX is one of the 3649 pairs that engine was probed on with a real file, which is why it has a page here and why the pairs the probe could not prove do not.
What survives from the CSV into the XLSX
Every value and every row of the CSV file. A CSV holds nothing but its values, so there is nothing else that could be lost on the way into the XLSX.
Types, worked out on the way in. Numbers arrive as numbers and dates as dates in the XLSX, which is what lets you sort and total them without touching each cell.
What CSV to XLSX costs you
Nothing, and it is worth saying plainly rather than inventing a caveat. A CSV file holds values and a delimiter; the XLSX holds all of that and more. What changes is what you can now do with it, not what it contains.
One caveat that is not a loss but does surprise people: the XLSX decides what your text means. A cell reading 03/04 becomes a date, and one reading 007 loses its zeros, because that is what a spreadsheet does with a bare value. The CSV file said nothing about types; something had to.
Where CSV and XLSX files come from
CSV. Everything writes it and nothing agrees on it. There is an RFC, 4180, and it describes common practice rather than commanding it: quoting, escaping and line endings all vary by producer. A CSV is the lowest common denominator, which is both why it is everywhere and why it surprises people.
XLSX. Excel writes it, and so does nearly everything with an export to Excel button: Google Sheets, Salesforce, a bank statement download. It holds 1,048,576 rows and 16,384 columns, which is why it replaced the older binary.
If a model is going to read the XLSX
Structure is what survives from the CSV file, and structure is what a model needs. CSV in, XLSX out, with the heading tree intact instead of flattened into one long paragraph.
CSV to XLSX, measured rather than promised
Running CSV to XLSX against the real engine with a real file, LibreOffice wrote 5,643 bytes of XLSX in 1.0 seconds, machine otherwise idle. That is one CSV file on one day and not an average, which is why the number is given together with the file that produced it.
The CSV to XLSX verdict was reached by reading the internal type and finding a witness word, meaning the output was read back and recognised. Which check was used matters, because they do not all prove the same thing, and a status code of 200 proves nothing whatsoever about whether the XLSX file has anything inside it.
The same CSV file, sent somewhere else
Other outputs the probe measured out of a CSV file, so the cost of choosing XLSX can be read against something. Sizes do not compare across engines, because each family was probed with its own CSV witness file.
CSV to PDF: 12,680 bytes in 1.0 seconds, verified by a format signature.
CSV to MD: 114 bytes in 0.1 seconds, verified by a pandoc round trip.
CSV to DOCX: 9,945 bytes in 0.1 seconds, verified by a pandoc round trip.
CSV to EPUB: 4,913 bytes in 0.1 seconds, verified by a pandoc round trip.
CSV to TXT: 114 bytes in under a tenth of a second, verified by reading the text back.
CSV to HTML: 3,894 bytes in 0.1 seconds, verified by a pandoc round trip.
Other ways into XLSX, and what they measured
Among the published routes into XLSX, CSV is the second largest output of the 3 measured. The witness files differ, so this ranks the probe run and not your document.
XLS to XLSX: 5,965 bytes in 1.0 seconds.
ODS to XLSX: 5,610 bytes in 1.1 seconds.
What we will not pretend about CSV to XLSX
A CSV file over 25 MB is refused before the upload finishes rather than after it, so you do not wait for a rejection.
A CSV to XLSX run that passes 90 seconds is killed, and the LibreOffice process is killed with it. A run left behind would sit on one of the machine's two cores until somebody noticed.
LibreOffice is serialised on purpose, one document at a time per worker, because each soffice instance takes 150 to 300 MB on a machine with 3.8 GB. Measured ceiling: 23 CSV conversions in flight and roughly 0.9 a second sustained. Past that the queue answers 429 rather than falling over, which was tested at 32 at once.
Two thirds of the pairs you could imagine in this family do not exist, and it is worth knowing why before you go looking for one. LibreOffice converts inside whichever application opened your file: from a spreadsheet it writes spreadsheets, flat text, HTML and PDF, and it will not write a .docx no matter how it is asked. It returns nothing at all rather than something wrong. Of 113 combinations probed on this engine, 64 came back with a real file and the rest were refused outright.
This pair is one of the 64. It was proved by sending a real CSV file through the live route and reading the XLSX that came back: not its extension, its internals, plus a marker word planted in the source and found again in the output. The traits named further up this page come from a second probe that looks for each of them one by one.
One CSV file at a time, chosen in the browser. There is nothing else to set up and nothing else on offer.
CSV to XLSX: what people ask
What actually converts my CSV file to XLSX?
LibreOffice does it, 24.2, on a machine we rent and watch. Not a browser trick and not somebody else service: the CSV file is uploaded once, LibreOffice runs once, the XLSX comes back, and neither file is kept afterwards.
How long does CSV to XLSX take?
On the file the probe used, LibreOffice took 1.0 seconds and wrote 5,643 bytes of XLSX. That is one real measurement on one real CSV file, not an average and not a promise about yours: a larger CSV takes longer, and past 90 seconds the run is stopped.
What do I lose going from CSV to XLSX?
The one to know about first: Nothing, and it is worth saying plainly rather than inventing a caveat. A CSV file holds values and a delimiter; the XLSX holds all of that and more. What changes is what you can now do with it, not what it contains.
Did my leading zeros survive?
Probably not, and it is the one thing to check. A CSV file says nothing about what its values mean, so the XLSX has to decide: 007 becomes 7, and 03/04 becomes a date. That is what a spreadsheet does with a bare value. If those columns matter, format them as text in the XLSX once it is open.
Is CSV to XLSX free?
There is a free allowance every month, and one CSV to XLSX conversion costs half a credit against it. When the allowance runs out the tool says so and stops, rather than quietly handing you a worse XLSX.