Free tool

HTML table to CSV.

Paste a page — or the table markup on its own — and get the rows back as CSV you can open in Excel or Google Sheets. Every table in the source is found for you. Take TSV to paste straight into a sheet, Markdown for a pull request, or JSON for a script. The HTML is parsed inertly: nothing runs, nothing uploads.

page.html
439 B0 tables found
0 × 0

Publishes just the extracted table to Comma — one URL instead of a spreadsheet attachment, and readers comment on the exact row instead of describing it. Free, no card.

What the extractor handles

  • A whole page, not just a <table> — every table in the source is listed and you pick one.
  • <thead>, <tbody> and <th> cells; nested tables stay with the table they belong to.
  • colspan expanded so columns stay aligned. rowspan is not — those rows come out short rather than shifted.
  • RFC 4180 quoting on output, so a value containing a comma, a quote or a line break survives the trip into Excel and Google Sheets.
  • Markdown and JSON output as well, for a pull request or a script instead of a spreadsheet.
  • Inert parsing: scripts never run, no stylesheet or image referenced by the markup is fetched, and the source never leaves your browser.

When the table should stay a table

Pull a table into CSV when the next step is arithmetic. When the next step is a person — a review, a sign-off, an argument about one number — the round trip through a spreadsheet loses the thing you needed: everyone opens the file in a different tool and the feedback arrives detached from the row it is about. Publishing the table as a report gives one URL that renders identically for everyone, with comments anchored to the row and every re-publish kept as a revision.

Questions

How do I convert an HTML table to CSV?
Paste the page or the table markup into the editor on this page, or drop an .html file onto it. Every <table> in the source is found and turned into rows — pick one, then copy the CSV, download a .csv you can open in Excel or Google Sheets, or take the Markdown or JSON version instead.
Can I paste a whole web page?
Yes. Paste the full HTML — view-source, a saved page, an export from a BI tool — and each table in it is listed with its dimensions so you can pick the one you want. You do not need to isolate the <table> element first.
Will it open in Excel or Google Sheets?
Yes. The CSV is written per RFC 4180: values containing a comma, a quote or a line break are wrapped in quotes and inner quotes are doubled, which is the dialect both Excel and Sheets read without an import wizard. The Tab tab gives you TSV, which pastes straight into a sheet without any import step at all.
What happens to merged cells?
A cell with colspan is repeated across the columns it spans, so the grid stays aligned. Rowspan is not expanded — a row that borrows a cell from the row above comes out one cell short rather than silently shifted. Check merged headers before computing on them.
Does it keep the formatting or the links?
No — CSV is text. Cell contents are taken as text with whitespace collapsed, so a link becomes its label and bold stays a plain word. If the formatting is the point, publish the HTML instead of converting it.
Is the HTML executed or uploaded?
Neither. The markup is parsed into an inert document in your browser: scripts do not run, images and stylesheets are not fetched, and nothing is sent anywhere. The data leaves your machine only if you click “Get a shareable link”.
Can I get JSON instead?
Yes. The JSON tab emits an array of objects keyed by the header row — the shape an API would return — which is handy when the table is the input to a script rather than a spreadsheet.

Related: Sortable HTML table · CSV to HTML table · Excel to HTML table · JSON to HTML table · HTML to Markdown · HTML formatter · HTML diff · all free tools · report types