HTML Table to Excel Converter
When you need an actual Excel file instead of CSV, this converter extracts HTML table data and packages it as a downloadable .xlsx workbook. It is the Excel-oriented sibling of the HTML Table to CSV converter — same table parsing, different delivery format for recipients who expect spreadsheet attachments.
Paste a page’s HTML or an isolated <table>...</table> block. The tool finds the table, reads headers, decodes entities, flattens cells into a worksheet, and builds a real .xlsx file in your browser with SheetJS. Your pasted HTML is not uploaded to a server as part of the conversion.
Below you will find when to choose Excel over CSV, how to copy static vs JavaScript-rendered tables, how merges and typing behave in the workbook, formatting tips after download, and a full troubleshooting and FAQ section for web-to-Excel workflows. Treat the downloaded file as raw data you polish in Excel before it goes to stakeholders.
Key features
- Extracts the same structured table data as the CSV version, but writes it straight into a downloadable .xlsx workbook.
- Uses the SheetJS library to build a real Excel file entirely in your browser — no server-side conversion step.
- Preserves the table's row and column order exactly as it appeared in the source markup.
- Handles <th> headers automatically, or falls back to generic column names if the table lacks them.
- Produces a single-worksheet workbook that opens natively in Excel, Google Sheets, and LibreOffice.
- Decodes common HTML entities so & and similar codes become readable characters in cells.
- Applies best-effort flattening for colspan/rowspan so merged HTML cells do not silently drop columns.
About the HTML table to Excel XLSX format
HTML tables present rectangular data in the browser. XLSX workbooks store that grid in Excel’s native Open XML format, which opens cleanly in Microsoft Excel, Google Sheets, LibreOffice, and Numbers. This converter maps <th>/<td> text into worksheet cells rather than a comma-separated text file.
Parsing matches the HTML→CSV path: locate a <table>, use <th> text as headers when present (or Column1, Column2, …), decode entities, and write each data row in order. Colspan/rowspan are flattened with best-effort value duplication because a basic data export does not recreate Excel merge regions automatically.
Values are typically stored as text in the sheet to avoid Excel’s aggressive auto-typing of IDs and dates. After download, apply number, currency, or date formats in Excel when you intentionally want typed cells for formulas and charts.
How it works
The converter reuses the same HTML table parser as the CSV version — locating the <table> element, reading <th> headers, and extracting <td> values row by row with HTML entities decoded.
Instead of writing those rows as comma-separated text, they are passed to the SheetJS (xlsx) library, which assembles a binary workbook structure with one worksheet containing the header row and data rows.
The workbook is then serialized and offered as a direct .xlsx download, with no server involved at any point. You open the file locally and format or analyze as needed.
Common use cases
- Sending a web-scraped pricing table to a manager as an Excel attachment.
- Converting an HTML report table into an Excel workbook for further formatting and charts.
- Extracting a data table from a wiki page and saving it as XLSX for a presentation.
- Delivering LMS or portal HTML grade tables as .xlsx for teachers who only use Excel.
- Archiving a vendor comparison table as a workbook snapshot for quarterly reviews.
- Handing finance a formatted-ready sheet without asking them to import CSV delimiters.
How to use this tool
- Copy the HTML for the table — full page source, rendered DOM, or just the <table>...</table> block — and paste it in.
- Review the preview for header names and row alignment, especially around any merged cells in the source.
- Download the .xlsx file and open it in Excel, Sheets, or LibreOffice.
- Rename headers if they are generic, then apply number/date/currency formats where appropriate.
- Save a copy under a clear name before sharing so the original extract stays intact.
Example
Input HTML
<table>
<tr><th>Name</th><th>Price</th></tr>
<tr><td>Widget</td><td>$9.99</td></tr>
<tr><td>Gadget</td><td>$14.50</td></tr>
</table>Output XLSX (Sheet1)
Name | Price
Widget | $9.99
Gadget | $14.50Tips for best results
- Use the CSV version if your next step is another converter; use this version when the recipient needs Excel.
- The XLSX output is data-only — apply formatting in Excel after download if needed.
- Paste one table at a time when a page contains multiple <table> elements.
- For JS-rendered tables, copy outerHTML from DevTools Elements after the page finishes loading.
- Rename generic ColumnN headers in Excel immediately so the sheet is understandable.
- Format ID and ZIP columns as Text after open if Excel tries to treat them as numbers.
- Keep the source URL and capture date in the filename when the extract informs a decision.
Common errors and how to fix them
- The workbook downloads but opens with no data in it.
- This usually means no <table> element was found in the pasted markup — double-check you copied the actual HTML (View Page Source for static pages, or rendered DOM from DevTools for JS apps), not just the visible text of the page.
- Merged cells from colspan/rowspan look duplicated or misaligned in the worksheet.
- Basic XLSX generation here does not recreate Excel merge regions. The converter duplicates the spanned value across affected cells as a best effort — for complex layouts, manually merge or clean cells in Excel afterward.
- Currency or percentage values are stored as plain text instead of formatted numbers.
- Values are written as text to avoid Excel's aggressive auto-formatting misreading dates or IDs. Select the column after opening and apply the desired number format, or use Text to Columns when needed.
- The page had multiple tables and the wrong one converted.
- Paste just the specific <table>...</table> block you want, rather than the whole page, to remove ambiguity about which table gets extracted.
- Excel shows a warning about file format or repair.
- Re-download after confirming the preview looked correct. If the paste included huge non-table markup, isolate the table and try again. Open in a second app (Sheets/LibreOffice) to see if the issue is Excel-specific.
- Formulas I hoped to keep from the HTML are missing.
- HTML tables hold displayed values, not Excel formulas. Recreate calculations in Excel after import if you need live formulas.
Best practices
- Use this version specifically when the recipient expects an .xlsx attachment; use the CSV version if the next step is another converter or script.
- Apply number, date, and currency formatting in Excel after downloading, since the output is intentionally unformatted plain data.
- Paste one table at a time from pages with multiple tables for predictable results.
- Verify the source markup carefully for JavaScript-heavy pages — copy rendered DOM when View Source lacks the table.
- Freeze the header row and enable filters in Excel for easier review before sharing.
- Document the source URL and extract date in a cover sheet or filename for auditability.
- Keep PII-minimized extracts when emailing workbooks outside a secure channel.
What HTML table to Excel conversion actually does
You start with markup meant for browsers and end with a workbook meant for spreadsheet apps. The converter reads table structure from HTML and writes cell values into Sheet1 of an .xlsx file.
It does not recreate the website’s look. Fonts, colors, responsive layouts, and scripts stay behind. What travels is the data grid — usually what managers and analysts actually need.
Because the file is true XLSX, recipients can sort, filter, chart, and pivot without wrestling with CSV import wizards or delimiter locales.
When to choose Excel instead of CSV
Choose Excel when the audience only opens .xlsx, when you will format and chart immediately, or when email policies treat CSV as awkward attachments.
Choose CSV when the next step is another Convert CSV tool, a script, or a database load. CSV remains the better interchange format between automated systems.
A common pattern: convert HTML→Excel for human delivery, or HTML→CSV→other formats for pipelines. Use the sibling converters rather than forcing one format to do both jobs.
- Good fit: executive attachments, teaching sheets, presentation-ready extracts.
- Better as CSV: feeding JSON/SQL converters, git-friendly text diffs, ETL drops.
- Automate instead: weekly scrapes that must land in SharePoint or a data warehouse.
Copying the right HTML for Excel export
Static CMS tables often appear in View Page Source. Copy the <table> block or enough surrounding HTML for the parser to find it.
SPA and React-style pages inject rows after load. Use DevTools → Elements → select the <table> → Copy outerHTML, then paste here.
Email HTML is noisy. Prefer the innermost data table over the entire message wrapper to avoid layout tables becoming Sheet1.
Headers, sheets, and workbook shape
One conversion yields one worksheet. Headers come from <th> when available; otherwise rename ColumnN labels in Excel right away.
Multiple HTML tables mean multiple downloads (or combine sheets manually later). That keeps each sheet’s schema clean.
There is no automatic second sheet for captions or footnotes. Put notes in the filename, a header comment row you add, or an email cover note.
Merged cells vs Excel merge
HTML colspan/rowspan are visual merges. This export flattens them into repeated values so columns stay aligned. It does not call Excel’s Merge Cells API.
If you need true merged header bands for a report, recreate merges in Excel after download — often only a few header cells.
When merges made the HTML hard to read, expect a few cleanup minutes in the sheet; still usually faster than retyping the table.
Text values, numbers, and Excel auto-formatting
Storing values as text on export is deliberate: it reduces surprise date conversions and scientific notation on long IDs.
For analysis, convert columns to numbers or dates explicitly (Paste Special, Text to Columns, or VALUE()). That is safer than hoping Excel guessed correctly on open.
Currency symbols in cells may remain part of the text (e.g. $9.99). Strip symbols or split columns if you need pure numerics for SUM.
Formatting the workbook after download
Apply bold headers, freeze panes, and AutoFilter as your first polish steps — they make large extracts usable immediately.
Set column widths, wrap long text, and add a simple title row above the table if you are presenting.
Avoid spending time matching the website’s CSS. Stakeholders care about accurate numbers and readable headers more than web fonts.
Google Sheets, LibreOffice, and Mac Excel
Modern .xlsx opens across ecosystems. Google Sheets upload/import works well for collaboration after the browser download.
LibreOffice Calc is a solid check if Microsoft Excel shows an odd warning — compare values, not just whether the file opens.
Locale settings still affect how dates display once you convert text to date types. Keep source formats unambiguous when you control the HTML.
Typical workflows
Vendor pricing: copy table HTML, download XLSX, highlight changes vs last quarter’s workbook.
Internal reporting: turn HTML email tables into sheets finance already knows how to pivot.
Education/admin: give staff Excel files from portals that only render HTML tables.
Content ops: archive wiki spec tables as workbooks before a CMS migration.
Browser limits, privacy, and sharing workbooks
Parsing and XLSX generation are local. Markup is not sent to Convert CSV servers for the transform. Analytics/ads on the site follow the privacy policy separately.
Large tables increase memory use while building the workbook. Paste fragments for giant pages.
Excel files travel easily by email — double-check they do not contain sensitive columns before forwarding. Redact in Excel or start from a minimized HTML paste.
HTML→Excel versus CSV→Excel
HTML→Excel is fastest when the source is a web table and the destination is a person in Excel.
If you already have CSV, use CSV to Excel (or open CSV in Excel) instead of round-tripping through HTML.
If you need both a workbook and further converters, generate CSV first, then branch: one path to Excel, another to JSON/SQL.
Quality checklist before you email the .xlsx
Confirm row counts roughly match the on-screen table. Confirm headers are meaningful. Spot-check merged regions and currency cells.
Open the file on your machine before sending. Apply basic formatting. Name the file with date and topic. Keep the HTML snippet until the recipient confirms.
- Correct table extracted.
- Headers renamed if needed.
- Types/formats applied for analysis columns.
- No unexpected empty sheet.
- Sensitive columns reviewed.
Working with finance and operations recipients
Finance stakeholders often reject CSV because delimiter and encoding issues waste time. Delivering .xlsx removes that friction, but you still owe them clean headers and trustworthy numbers.
Call out whether prices include tax, which currency applies, and whether the HTML table was a live quote or a static archive. Put that context in the email body or a Notes row at the top of the sheet.
If operations will refresh the extract weekly, agree on a stable column order and filename pattern (vendor-pricing-YYYY-MM-DD.xlsx) so their macros and Power Query steps keep working.
When the HTML source changes layout, re-check merges and hidden columns before assuming the new workbook matches last week’s structure.
Power Query, pivots, and reusable templates
For recurring work, download raw XLSX into a “Raw” sheet and point Power Query or formulas at that sheet from a “Report” template. Replace Raw each cycle instead of rebuilding charts.
If Power Query prefers CSV, use HTML Table to CSV and keep Excel for the final shaped report — pick the path that matches your team’s skills.
PivotTables need real numeric fields. Budget a minute to convert text numbers after each extract; skipping that step is the most common “why is my pivot empty?” failure.
Mobile browsers and download quirks
Generating .xlsx on a phone is possible but awkward for large tables. Prefer a desktop browser when the HTML paste is big or you need to inspect DevTools for rendered DOM.
Some mobile browsers download files to less obvious folders. Confirm the .xlsx opens before you assume the conversion failed.
If a download is blocked by an enterprise policy, try CSV output instead and open it in Excel locally — policies sometimes treat binary downloads differently from text.
Charts, pivots, and analysis next steps
Once values are numeric, Insert Chart or PivotTable works like any other workbook. Convert text numbers first or charts will look empty.
Split wide HTML tables into topic-focused sheets if the original page crammed unrelated metrics together.
For recurring analysis, save an Excel template with formulas referencing a raw data sheet you replace each time you re-convert.
Related tools and next steps
Prefer plain text for pipelines? Use HTML Table to CSV. Need links rather than grids? Use HTML Links to CSV.
Clean or combine sheets in Excel after download, or use the Online CSV Editor on a CSV extract when you need quick column deletes before rebuilding XLSX via CSV to Excel. Site guides cover Excel import and encoding issues when values look right in preview but wrong after open.
Frequently asked questions
How is this different from the HTML Table to CSV converter?
Both use the same table-parsing logic; this version writes the result directly into a downloadable .xlsx workbook instead of plain CSV text, which is useful when the recipient specifically needs an Excel file.
Are multiple sheets created if the page has multiple tables?
No. Each conversion produces a single worksheet from one table. Convert additional tables separately and combine the sheets in Excel afterward if you need them together.
Does the output preserve any of the original page's styling?
No. Only the tabular data (headers and cell values) is extracted — colors, fonts, and borders from the source page are not carried over.
Can this handle JavaScript-rendered tables?
Only if the table is present in the HTML you paste. For client-side rendered tables, copy the rendered DOM from your browser's DevTools rather than the original page source.
Is the HTML or the resulting file uploaded anywhere?
No. Both parsing and the XLSX build happen locally in your browser. See the Privacy Policy for site analytics and advertising.
What if I actually need CSV instead of Excel?
Use the HTML Table to CSV converter, which extracts the same data as plain comma-separated text.
Why are my numbers left-aligned like text?
Values are often stored as text to prevent auto-formatting issues. Convert or format the column as Number/Currency in Excel when you need calculations.
Can I get multiple worksheets in one download?
Not in a single pass. Run the converter once per HTML table, then move sheets into one workbook in Excel.
Does this work with Google Sheets?
Yes. Download the .xlsx and upload or import it into Google Sheets. Verify types after import if you need formulas.
Is there a file size limit?
There is no fixed server quota, but very large HTML tables can stress browser memory while building the workbook. Paste smaller fragments when needed.
Will hyperlinks inside cells become Excel hyperlinks?
Link URLs are not specially reconstructed as Excel hyperlink objects from arbitrary HTML. You may see link text only; use HTML Links to CSV if URLs are the goal.
Can I keep Excel formulas from the web page?
No. HTML shows calculated text, not spreadsheet formulas. Recreate formulas in Excel after download if required.
Should I convert HTML to Excel or to CSV first?
Go straight to Excel when a person needs a workbook attachment. Start with CSV when you still need other converters, scripts, or git-friendly text before anyone opens Excel.
For more background on data formats and conversion workflows, read our format guides or browse the converter blog for step-by-step walkthroughs linked to each tool.