XLS is the pre-2007 Excel binary. ODS is an OpenDocument workbook, the native format of LibreOffice Calc. LibreOffice sits between the two, and this page says exactly what happens to an XLS file on the way to becoming an ODS one.
What runs when an XLS file becomes ODS
LibreOffice 24.2, on a machine we rent and watch. Your XLS file is uploaded once, LibreOffice runs once, the ODS comes back, and neither file is kept. XLS to ODS 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 XLS into the ODS
An ODS you can still edit. This pair swaps the container, not the content: what comes back opens in a spreadsheet application and takes changes, which is the whole reason to do it rather than print to PDF.
Heading styles, still recognisable as headings. The ODS carries a heading level, not just larger text, which is what lets a table of contents rebuild itself and a screen reader skip around.
Tables, as tables. Rows and cells are re-described in the ODS table model rather than flattened into lines, so they stay sortable and editable.
Character formatting: bold, and the run structure that carries it.
The formulas themselves, not their answers. A SUM in your XLS file arrives in the ODS as a SUM: change a number and the total still recalculates. This is the single thing a PDF export cannot do, and it was measured on this pair rather than assumed.
What XLS to ODS costs you
Exact pagination. XLS and ODS compute line breaks and page breaks with different engines, so a document that filled four pages can come back filling five. Nothing is missing; it sits elsewhere.
Macros, and anything an application kept to itself. VBA does not cross into ODF and ODF Basic does not cross into OOXML, so an XLS file that automates itself arrives in the ODS as one that does not.
Pivot tables, charts and conditional formatting rules can arrive simplified: the values behind them are exact, the interactive object around them is rebuilt in the ODS model and does not always survive the trip whole.
Where XLS and ODS files come from
XLS. Excel wrote it before 2007, and things still produce it: old line-of-business software, machines nobody has updated, exports from systems written in the nineties. It stops at 65,536 rows and 256 columns, a ceiling XLSX raised sixteenfold, and a growing number of tools now refuse it outright because it is an OLE2 binary rather than a zip of XML.
ODS. LibreOffice Calc and OpenOffice write it natively. It is ISO/IEC 26300, which is why several public administrations ask for it by name in procurement, and why a file that arrives as ODS often arrives from one of them.
If a model is going to read the ODS
Structure is what survives from the XLS file, and structure is what a model needs. XLS in, ODS out, with the heading tree intact instead of flattened into one long paragraph.
XLS to ODS, measured rather than promised
Running XLS to ODS against the real engine with a real file, LibreOffice wrote 12,285 bytes of ODS in 1.1 seconds, machine otherwise idle. That is one XLS file on one day and not an average, which is why the number is given together with the file that produced it.
The XLS to ODS 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 ODS file has anything inside it.
The same XLS file, sent somewhere else
Other outputs the probe measured out of an XLS file, so the cost of choosing ODS can be read against something. Sizes do not compare across engines, because each family was probed with its own XLS witness file.
XLS to PDF: 18,519 bytes in 1.0 seconds, verified by a format signature.
XLS to HTML: 2,101 bytes in 1.0 seconds, verified by reading the internal type and finding a witness word.
Other ways into ODS, and what they measured
Among the published routes into ODS, XLS is the second largest output of the 3 measured. The witness files differ, so this ranks the probe run and not your document.
XLSX to ODS: 12,517 bytes in 1.2 seconds.
CSV to ODS: 10,944 bytes in 1.1 seconds.
What we will not pretend about XLS to ODS
An XLS file over 25 MB is refused before the upload finishes rather than after it, so you do not wait for a rejection.
An XLS to ODS 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 XLS 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 XLS file through the live route and reading the ODS 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 XLS file at a time, chosen in the browser. There is nothing else to set up and nothing else on offer.
XLS to ODS: what people ask
What actually converts my XLS file to ODS?
LibreOffice does it, 24.2, on a machine we rent and watch. Not a browser trick and not somebody else service: the XLS file is uploaded once, LibreOffice runs once, the ODS comes back, and neither file is kept afterwards.
How long does XLS to ODS take?
On the file the probe used, LibreOffice took 1.1 seconds and wrote 12,285 bytes of ODS. That is one real measurement on one real XLS file, not an average and not a promise about yours: a larger XLS takes longer, and past 90 seconds the run is stopped.
What do I lose going from XLS to ODS?
The one to know about first: Exact pagination. XLS and ODS compute line breaks and page breaks with different engines, so a document that filled four pages can come back filling five. Nothing is missing; it sits elsewhere.
Can I still edit the ODS?
Yes, and that is the point of this pair rather than a PDF export. What comes back is a working ODS: open it, change it, save it. Formulas came across as formulas, so a total still recalculates when you change a number under it.
Will it look identical?
Close, not identical, and the difference is honest. XLS and ODS lay text out with different engines, so line and page breaks can fall elsewhere and a four page document can come back at five. Nothing is missing when that happens; it sits in a different place. If you need the layout frozen exactly, convert to PDF instead, and accept that you can no longer edit it.
Is XLS to ODS free?
There is a free allowance every month, and one XLS to ODS 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 ODS.