Convert Excel spreadsheets (XLSX, XLS, CSV) to HTML tables using SheetJS. Supports multi-sheet workbooks with a sheet selector. Toggle between styled and unstyled output. Live preview and copy/download HTML.
Click or drag an XLSX, XLS, or CSV file. SheetJS reads the workbook in your browser. For multi-sheet workbooks, a sheet selector tab bar appears so you can switch between sheets.
Click a sheet tab to convert that sheet to an HTML table. Toggle Styled to add basic CSS (borders, alternating row colours, header styling). Toggle Unstyled for a bare <table> suitable for pasting into your own CSS framework.
Click Copy HTML to copy the table to the clipboard. Click Download HTML to save as an .html file. The output is a complete HTML fragment (the <table> element) ready to embed in a webpage.
SheetJS (also called xlsx.js) is an open-source JavaScript library (github.com/SheetJS/sheetjs) that reads and writes spreadsheet files (XLSX, XLS, ODS, CSV, and more) entirely in the browser or Node.js. It parses the spreadsheet binary format and provides utilities to convert sheets to various formats including HTML, CSV, and JSON. It requires no server-side processing.
Cell values and text content are preserved. Basic number and date formatting is applied. Column widths are approximately replicated. The styled output adds table borders and header row highlighting. What is NOT preserved: cell formatting (colours, fonts, bold/italic), merged cells (merged cells show the value in the first cell only), formulas (converted to their computed values), and charts/images.
Merged cells in Excel are complex in HTML — they require the colspan and rowspan attributes. SheetJS utils.sheet_to_html() does include basic colspan/rowspan handling in its HTML output. However, complex multi-row merged ranges may not render perfectly. For tables with many merged cells, consider exporting from Excel to CSV first.
The HTML output is per-sheet — each sheet produces one HTML table. You can copy each sheet's HTML separately and combine them in your document. For a single HTML file with all sheets, copy and paste each sheet's HTML output with headings between them manually.
XLSX (Excel 2007+): full support. XLS (Excel 97-2003): supported with some limitations. CSV: treated as single-sheet. ODS (OpenDocument Spreadsheet): supported. XLSM (macro-enabled XLSX): macros are stripped, data is preserved. Numbers (Apple) files are not supported.
Copy the HTML output and paste it directly into your HTML file or CMS. The styled output includes an inline <style> block — if pasting into a CMS that strips styles, use the unstyled output and style the table with your own CSS. Bootstrap example: add class="table table-bordered table-striped" to the <table> tag.