HTML Table to CSV

Paste an HTML table and get clean CSV or JSON back.

HTML table to CSV
Converted output

What this tool does

An HTML table to CSV converter reads the rows and cells out of pasted HTML and returns them as comma-separated data you can paste into a spreadsheet. Colspan and rowspan are honoured, so a merged cell fills the columns it actually covers instead of shifting everything after it. The header row is identified first and kept as the CSV header, and a JSON option returns the same table as an array of objects when that suits the next step better.

Pastes an HTML table and returns CSV or JSON for every row at once.

Honours colspan and rowspan so merged cells do not shift the columns.

Keeps the header row separate and copies the whole table in one click.

Takes the first table in the paste or lets you pick which one to convert.

How to use it

  1. Copy the table from any page - right-click, inspect, or copy the source.
  2. Paste the HTML into the box and the CSV appears instantly.
  3. Switch to JSON if your next step wants objects rather than rows.
  4. Use the table picker when the paste contains several tables.
  5. Copy the result and paste it into your spreadsheet or script.

Why use this tool

Web tables look like data but behave like layout. Copying one straight into a spreadsheet drags along row heights, merged cells collapse wrong, and inline styles ride along as formatting you did not ask for. Reading the actual table structure out of the HTML instead - rows, cells, spans - gives clean data on the first try, with the header row already separated.

Why we built it

We built this HTML table to CSV converter because the copy-paste route fails on exactly the tables worth extracting - the ones with merged header cells and grouped rows. Honouring colspan and rowspan is the whole difference between data that lands in the right columns and data that silently shifts one place left. The HTML table generator writes tables; this one takes them back out again. The CSV formatter then tidies any CSV you already have.

For whole-page data, the internal link analyzer and the image URL extractor read the same kind of pasted HTML.

Who this tool is for

  • Analysts pulling data out of web pages into spreadsheets
  • Developers prototyping with table data from documentation
  • Researchers collecting published figures from HTML reports
  • Anyone who has pasted a web table and watched the columns break

A worked example

The sample loads a small pricing table with one merged header cell, so you can see the spans handled. The CSV comes back as clean rows with the plan names as the header:

Example: HTML table to CSV output
FeatureBasicPro
Projects5Unlimited
Storage (GB)10100
SupportEmailEmail, chat

What you enter, and what you get back

Inputs and results of the HTML table converter
ItemDetails
HTMLA pasted table, snippet or full page source.
Output modeCSV with header, or JSON array of objects.
Table pickerChoose which table when the paste holds several.
ResultRows in document order, spans expanded, header on top.

Issues you may run into

Common conversion problems
What you seeWhy it happensWhat to do
Extra empty rowsSpacer rows used for layout inside the table.They convert faithfully - delete them after paste.
Columns look shiftedThe header itself uses merged cells.The tool expands spans; check the header row first.
Text looks choppedCell content contained inline formatting.Formatting is stripped, the full text is kept.
Nothing extractedThe paste is a rendered selection, not HTML.Copy the table's HTML source instead.

Assumptions and limitations

Frequently asked questions

How do I convert an HTML table to CSV?

Copy the table's HTML - from view-source or the inspect panel - paste it into the tool, and the CSV appears immediately with the header row on top. Switch to JSON if you need objects instead of rows.

Does it handle merged cells?

Yes. Cells with colspan or rowspan are expanded to cover the columns and rows they span, so every row comes back with the same number of columns and nothing shifts.

Can I get JSON instead of CSV?

Yes. The JSON mode returns an array of objects with the header cells as keys, which drops straight into most scripts and APIs.

What happens with nested tables?

The outer table wins. Inner tables are read as part of the cell content, with their text flattened into that cell.

Is the header row handled?

Yes - the first row is treated as the header and becomes the CSV header line, or the keys of the JSON objects. Rows after it are data.

Is the HTML table to CSV converter free?

Yes, completely free with no account and nothing uploaded. The HTML is parsed in your browser and gone when you close the tab.