How to Convert an HTML Table to CSV
Copying a table off a web page into a spreadsheet often loses its structure or drags along messy formatting. This converter fixes that. Paste the HTML — a single table or a whole page — and a real DOM parser reads it exactly as a browser would. Header cells become your CSV header row; if the table has none, the first row is used instead. Every body row becomes a CSV line, cell text is trimmed and inner markup is stripped to plain values, and any field containing the delimiter, quotes or line breaks is quoted the RFC-4180 way. If the page has several tables, a dropdown lets you pick the one you want. Choose a comma, semicolon or tab, then copy or download. Everything runs in your browser, so nothing is uploaded.
Paste your HTML
Paste a table or a full page, or load the sample; it's parsed locally with nothing uploaded.
Choose the options
Pick the delimiter, toggle the header row, and select which table if there are several.
Copy or download
Grab the CSV with one tap or save it as a .csv file.
HTML Tables vs CSV — What's the Difference?
HTML table markup
A set of table, tr, th and td elements a browser renders as a grid. It's made for display, mixing content with styling and structure, so it isn't directly usable as data in a spreadsheet.
CSV — comma-separated values
A flat, universally supported data format where each line is a row and a delimiter separates columns. Converting an HTML table to CSV strips away the markup and leaves clean, importable data.
Common Use Cases
Scrape a web table
Pull a table from a page's source into CSV you can analyse in a spreadsheet.
Reports to data
Turn an HTML report table into importable data for further work.
Email & doc tables
Extract tables pasted from emails or documents as HTML into clean CSV.
Dashboard exports
Convert a rendered dashboard table's markup into a data file.
Migrations
Move tabular content out of an HTML page into a database-ready CSV.
Research data
Capture published HTML tables as CSV for analysis.
European locales
Use semicolon output for CSVs that open correctly in comma-decimal regions.
Quick extraction
A fast, no-install way to get a table's data out of HTML.
Tips & Best Practices
Paste the whole page if unsure
You can paste an entire page's HTML; the parser finds the tables and lets you pick one.
Use th for clean headers
Tables with proper th header cells give you an accurate CSV header row automatically.
Pick the right table
If several tables exist, use the dropdown to select exactly the one you need.
Match the delimiter
Use commas for most tools; switch to semicolons for comma-decimal locales, or tab for TSV.
Watch merged cells
Cells spanning rows or columns (rowspan/colspan) can shift alignment; check the output if your table uses them.
Trust the quoting
Cells with commas or quotes are escaped automatically, so paste as-is without cleaning first.
Troubleshooting
It says no table was found
The HTML must contain a <table> element. If your data is a list or divs styled as a table, it won't be detected.
The wrong table converted
When several tables exist, use the Table dropdown to choose the right one.
Columns look misaligned
The table probably uses rowspan or colspan. Merged cells don't map cleanly to a flat grid, so alignment can shift.
Extra whitespace in cells
Cell text is trimmed, but inline elements can add spacing. The output shows the visible text of each cell.
Frequently Asked Questions
How do I convert an HTML table to CSV for free?
Paste your HTML above and CSV appears instantly. Copy it or download a .csv file — free, no signup.
Can I paste a whole web page?
Yes. The parser finds every table in the markup and lets you pick which one to convert.
How does it find the header row?
Header cells (th) in the first row become the CSV header. If there are none, the first row of cells is used.
What if the page has several tables?
A dropdown appears so you can choose exactly which table to convert.
Does it strip HTML inside cells?
Yes. Inner markup is removed and the visible text is trimmed, so you get plain values.
Are commas and quotes handled?
Yes. Any field containing the delimiter, a quote or a line break is wrapped in quotes and inner quotes are escaped.
Can I use a semicolon or tab delimiter?
Yes. Choose comma, semicolon or tab to match your target spreadsheet or tool.
Can I omit the header row?
Yes. Turn off the header option to output only the data rows.
What about merged cells?
Cells with rowspan or colspan don't map cleanly to a flat grid, so alignment may shift for those tables.
Will the CSV open in Excel?
Yes. The output imports cleanly into Excel, Google Sheets, Numbers and any CSV-aware tool.
Is my data sent to a server?
No. Everything happens inside your browser, so your data never leaves your device.
Can I download the result?
Yes. Save the output as a .csv file, or copy it straight to your clipboard.
How large a table can it handle?
It comfortably converts tables with many hundreds of rows, all within your browser.
Does it need a full HTML document?
No. You can paste just a <table> fragment; a full page works too.
Can I convert to JSON instead?
Yes — use our HTML to JSON converter to get an array of objects.
Does it preserve Unicode?
Yes. Any Unicode characters in your table are preserved in the CSV output.
Does it work on phones?
Yes, in any modern browser on Windows, Mac, Android or iPhone with nothing to install.
Is this converter really free?
Completely free, forever — no account, no ads and no premium wall.
100% free · No signup · Processed in your browser · Data never sent
Last updated: August 2026 · FlipMyFormat HTML to CSV Converter
Written and maintained by the FlipMyFormat team · Runs entirely in your browser