The output was a single <table> with one header row and body rows, not a full HTML document with workbook chrome.
First sheet default
Changed
The API converted the Orders sheet and warned that the Lookups sheet was exposed internally but not written to the single-table format.
Merged headers
Changed
A merged report title became <th>Q3 Orders</th> followed by synthetic header cells named column_2 through column_5.
Escaped text
Kept
Cell text was escaped for HTML output, so angle brackets and ampersands are protected when present in worksheet data.
Dates and percentages
Changed
The tested date cells became ISO strings and the percentage cell kept its raw numeric value, matching tabular extraction rather than display formatting.
Formula results
Changed
Formula cells are represented by cached values, and the HTML output does not contain spreadsheet formulas or recalculation logic.
Excel styling
Lost
Cell colors, borders, number formats, column widths, charts, filters, comments, and frozen panes were not written into the HTML table.
Table structure Changed
The output was a single <table> with one header row and body rows, not a full HTML document with workbook chrome.
First sheet default Changed
The API converted the Orders sheet and warned that the Lookups sheet was exposed internally but not written to the single-table format.
Merged headers Changed
A merged report title became <th>Q3 Orders</th> followed by synthetic header cells named column_2 through column_5.
Escaped text Kept
Cell text was escaped for HTML output, so angle brackets and ampersands are protected when present in worksheet data.
Dates and percentages Changed
The tested date cells became ISO strings and the percentage cell kept its raw numeric value, matching tabular extraction rather than display formatting.
Formula results Changed
Formula cells are represented by cached values, and the HTML output does not contain spreadsheet formulas or recalculation logic.
Excel styling Lost
Cell colors, borders, number formats, column widths, charts, filters, comments, and frozen panes were not written into the HTML table.
Sample conversions
Orders worksheet
Input
17,714-byte XLSX with a merged Q3 Orders heading, two order rows, ISO-like date cells, and a second Lookups sheet.
Output
446-byte HTML started <table><thead><tr><th>Q3 Orders</th><th>column_2</th> and included <td>2026-09-10T00:00:00.000Z</td><td>0.375</td>.
Apostrophe in customer name
Input
Orders sheet row contained customer Bo O'Connor and total 99.99.
Output
The HTML body kept the apostrophe as text inside <td>Bo O'Connor</td> and did not add workbook-specific styles or classes.
A real Excel XLSX → HTML run
We converted our Excel XLSX sample (17 KB) with Table engine on 2026-09-11. It took 1 ms and produced a 517 B HTML file, 97% smaller than the input. The engine raised 2 warnings, listed below.
Input · sample.xlsx · 17 KB
Workbook with 2 sheets (Pipeline, Notes); first sheet 5 rows, 25 cells, 0 formulas
Sheets
2
Sheet names
Pipeline, Notes
Rows
5
Cells
25
Formulas
0
frozenHeader
no
Output · sample.html · 517 B
HTML fragment with 0 headings, 0 paragraphs, 1 table, 0 links, 0 images
Headings
0
Paragraphs
0
Tables
1
Links
0
Images
0
Standalone document
no
△Workbook contains multiple sheets; each sheet was exposed as its own IR table.
△Only the first table was written to this single-table format.
pandas writes different markup and may infer types differently, so compare dates and identifiers.
Excel XLSX to HTML by API or MCP
The HTTP API and the MCP server run the exact engine this page uses (Table engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=xlsx&to=html.
Use /convert/xlsx-to-md when the target is a README, issue comment, or other Markdown surface.
Keep XLSX when the recipient needs formulas, workbook styling, charts, filters, or more than one sheet.
Excel XLSX to HTML questions
Is XLSX to HTML a full spreadsheet preview?
No. The converter writes a plain HTML table. It does not recreate Excel's grid UI, formulas, sheet tabs, or cell styling.
Are cell values safe for HTML insertion?
The serializer escapes HTML-sensitive characters in cell names and values. You should still place the table inside your own page template and CSS.
Why did the first row become table headers?
Our table engine treats the selected header row as column names. The conversion counts toward your daily or monthly allowance like every other, and the input is deleted within 24 hours.