XLS is the pre-2007 Excel binary. HTML is the markup of the web, with native headings and tables. LibreOffice sits between the two, and this page says exactly what happens to an XLS file on the way to becoming an HTML one.
What runs when an XLS file becomes HTML
LibreOffice 24.2, on a machine we rent and watch. Your XLS file is uploaded once, LibreOffice runs once, the HTML comes back, and neither file is kept. XLS to HTML 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 HTML
The text, as text in a web page: no download needed to read it, and anything that can read HTML can read it.
Tables, written as HTML tables rather than as aligned spaces.
Cell formulas, carried into the HTML alongside their values.
What XLS to HTML costs you
Page geometry. HTML has no pages, so margins, page breaks, headers and footers have nowhere to go. This pair turns a document into a web page, not into a picture of one.
Fonts, unless the reader happens to have them. The HTML names them and the browser substitutes what it has.
Where XLS and HTML 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.
If a model is going to read the HTML
Structure is what survives from the XLS file, and structure is what a model needs. XLS in, HTML out, with the heading tree intact instead of flattened into one long paragraph.
XLS to HTML, measured rather than promised
Running XLS to HTML against the real engine with a real file, LibreOffice wrote 2,101 bytes of HTML in 1.0 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 HTML 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 HTML 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 HTML 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.
Other ways into HTML, and what they measured
Among the published routes into HTML, XLS is the tenth largest output of the 12 measured. The witness files differ, so this ranks the probe run and not your document.
CSV to HTML: 3,894 bytes in 0.1 seconds.
JSON to HTML: 4,018 bytes in 0.1 seconds.
ODP to HTML: 12,295 bytes in 1.6 seconds.
ODS to HTML: 2,066 bytes in 1.0 seconds.
ODT to HTML: 4,043 bytes in 0.1 seconds.
What we will not pretend about XLS to HTML
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 HTML 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 HTML 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 HTML: what people ask
What actually converts my XLS file to HTML?
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 HTML comes back, and neither file is kept afterwards.
How long does XLS to HTML take?
On the file the probe used, LibreOffice took 1.0 seconds and wrote 2,101 bytes of HTML. 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 HTML?
The one to know about first: Page geometry. HTML has no pages, so margins, page breaks, headers and footers have nowhere to go. This pair turns a document into a web page, not into a picture of one.
Are my speaker notes in the HTML?
No. What lands in the HTML is what was on the slides.
Can I open the HTML without any software?
Yes. Any browser opens it, which is the reason to pick HTML over an XLS: no application, no plugin, no download step for whoever you send it to.
Is XLS to HTML free?
There is a free allowance every month, and one XLS to HTML 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 HTML.