HTML Table to CSV

Paste HTML and every table in it is detected automatically — with previews, proper colspan/rowspan handling, and export to CSV, TSV, JSON or Markdown. Free, no upload, no signup.

Paste HTML to detect tables.

🔒 Private by design: this tool runs entirely in your browser. Your data is never uploaded to any server.

📖 Want the full background? Read the guide: learn when and how to use this tool.

What this converter does

HTML tables look simple until you try to export one: merged cells shift columns, nested markup sneaks into values, and multi-table pages make copy-paste useless. This tool parses your HTML with the browser's own parser, expands colspan and rowspan into a proper rectangular grid, strips markup from cell values, and lets you export any table — or all of them — in the format you need.

Supported outputs

Why use this one?

FeatureScrapTheWebTypical converters
Multi-table detection with previewsFirst table only, or manual splitting
colspan/rowspan flattening✅ Correct gridShifted columns
Export formatsCSV, TSV, JSON, MarkdownCSV only
ProcessingIn your browserServer upload, size limits
Automation snippet (pandas)

Frequently asked questions

How do I convert an HTML table to CSV?

Copy the page source (or just the table markup), paste it above, and every <table> is detected automatically with a preview. Pick the table you want and download it as CSV — or JSON, Markdown, or TSV for Excel.

The page has several tables — can I pick one?

Yes. All detected tables are listed with their size and a preview of the first rows. Click any of them to select it, or export all tables combined into one file.

Does it handle merged cells (colspan / rowspan)?

Yes — merged cells are flattened properly: a cell spanning 3 columns produces 3 CSV cells (value repeated or blank, your choice), and rowspans are carried down into the rows they cover. Most converters get this wrong and shift your columns.

How do I get the HTML of a page to paste here?

In your browser press Ctrl+U (view source), select all and copy. Or in DevTools, right-click the <table> element → Copy → Copy outerHTML. If the table is built by JavaScript, the DevTools method is the one that works.

Is my HTML uploaded to a server?

No. Detection, parsing and conversion all run in your browser. Your data never leaves your device, so it is safe for internal reports and non-public pages.

Can I automate this in Python?

Yes — the tool shows a pandas.read_html() snippet matched to your table selection. For scheduled scraping, that one-liner plus DataFrame.to_csv() replicates what this page does.