How to extract HTML tables
Paste markup into HTML document, upload an .html or .htm file, or enter a public page in Public page URL. HTML Table Extractor lists each <table> separately, expands merged cells into a rectangular grid, and lets you export selected results as CSV, JSON, or XLSX.
Extract tables from HTML in five steps
- Choose Paste / Upload HTML or Fetch Public URL.
- Paste markup into
HTML document, or click browse files and choose an.htmlor.htmfile. - In URL mode, enter one public
httporhttpsaddress inPublic page URL. - Check each Table # result for its caption, header source, row count, column count, and preview.
- Leave the needed tables selected, use Select all or Select none, then click CSV, JSON, or XLSX under Export selected tables:.
Pasted and uploaded HTML is processed automatically. URL mode fetches as you type, and every table is selected when results appear. An input without tables produces the message No <table> elements were found in this HTML.
How rowspan, headers, and nested HTML tables are read
The parser expands rowspan and colspan into an explicit rectangular grid. A spanning cell's text is copied into every grid position it covers. If a row is short or malformed, the missing positions stay as flagged empty cells, so each exported row uses the table's full column count.
<table><tr><th colspan="2">Q1</th></tr>
<tr><td>West</td><td>120</td></tr></table>
Q1 | Q1 (1)
West | 120
The preview shows up to 8 columns and the first 5 data rows. Results report merged-cell and missing-cell counts when nonzero.
Rows inside <thead> supply headers. If there is no <thead>, the parser uses a leading run of rows made entirely of <th> cells. When neither structure appears, the export names the columns Column N and reports the header source as none detected.
A table inside another table gets its own selectable result and shows its parent table index. The parent cell's text excludes the nested table, while the parent result is marked as containing one.
HTML tables to CSV, JSON, or XLSX
Select one table or several before exporting. CSV puts the table index, caption, header source, row and column counts, and source in comment lines. JSON stores that metadata with headers and rows. XLSX creates one sheet per table and a _metadata sheet. The source label identifies pasted HTML, a filename, or a URL.
What Fetch Public URL can and cannot read
Fetch Public URL requests raw, server-rendered HTML through a server-side request over http or https. It sends no cookies or credentials, runs no JavaScript, and uses no browser automation. The host must resolve to a public address. A response can be up to 5 MB, the request can run for 10 seconds, and the fetch follows up to 5 redirects.
URL mode reads one final HTML response. It does not follow page links, collect general page text, or crawl a site. For a login-protected or client-rendered table, copy the live DOM from browser developer tools and paste it into HTML document. The page processes pasted and uploaded HTML with browser JavaScript.
Where HTML table extraction comes up
Upload a saved HTML report and export XLSX when its rows need to go into a spreadsheet.
For a rendered table behind a login, copy its live markup into HTML document, select it, and export CSV.
When one document contains several tables, select the needed Table # results. JSON keeps parent relationships and cell counts.
When to use another parser
HTML Table Extractor reads table markup. For other input, open Parser Extract Tools: Cookie Parser reads Cookie and Set-Cookie header strings, Logfmt Parser reads key=value log lines, and User-Agent Parser reads User-Agent strings.
Frequently asked questions
Can I extract HTML tables with rowspan and colspan?
Yes. The parser expands rowspan and colspan into a rectangular grid before export. It copies spanning text into every position the cell covers and records empty positions as missing cells.
How do I extract a nested HTML table?
A nested HTML table appears as a separate selectable result with a parent table index. The parent cell is marked as containing a nested table.
Can I turn HTML tables into CSV, JSON, or XLSX?
Yes. Select one or more Table # results and click CSV, JSON, or XLSX. CSV uses comment lines for metadata, JSON stores metadata beside the data, and XLSX adds a _metadata sheet.
Can I extract an HTML table from a public URL?
Yes. Fetch Public URL reads one public HTTP or HTTPS page containing server-rendered HTML. It cannot run page JavaScript or use login credentials, so paste the live DOM for a client-rendered or protected table.