creatorvalet Search

Convert an HTML Table to CSV

Paste the table, open its HTML or choose it on the current page. See every rowspan and colspan before deciding how the flat export should represent it.

  • SECURE
  • NO UPLOADS
  • NO SIGNUP
  • BROWSER BASED
  • FREE
  • FOREVER.

Support us with a link or a share

Paste a copied table or its HTML

Drop an .html file anywhere in this panel.

Or pick a table on a page you have open

  1. Choose a page tableDrag it to your bookmarks bar
  2. Open the page, click the bookmark, then choose the outlined table.
  3. The table appears in this tab.

No bookmarks bar?

It reads only visible HTML <table> elements in that tab — no crawling, sign-in, CSS-grid or image tables.

Import a saved table

The JSON file the collector saves when it can’t send to this tab.

The page collector runs from a desktop bookmarks bar, which phones don’t have. Import the JSON it saved on a computer.

HTML table to CSV: why the conversion needs a decision

An HTML table can merge cells across columns with colspan and down rows with rowspan. CSV cannot. It is only a rectangular sequence of fields, so every covered position must either receive a value or become empty. Quiet converters choose for you, which is how a heading over three quarters can slide the data below it out of place. This converter draws the original spans first and then draws the exact flat grid it will write.

Repeating the merged value is the default because filtering and sorting still have the context in every row and column. Keeping only the top-left value more closely resembles a merged spreadsheet, but leaves deliberate blanks. Neither is universally correct, so both remain a visible choice rather than an implementation detail.

Extract a table from a website you already have open

The current-page collector is a bookmarklet, not a crawler. It lists visible <table> elements in the open tab, outlines the one you hover, and sends only the chosen table’s HTML plus its page title and URL to this converter. That includes pages behind a login you legitimately use and client-rendered data already present in the DOM, without asking a remote server to fetch the URL again.

The boundary is equally important: a set of styled <div> elements, a canvas, a screenshot, virtualized rows that have not been rendered and content behind an unopened pagination control are not in the collected table. The receipt names the source and the preview tells you the dimensions actually received; it never claims to have captured an entire site or dataset.

CSV, Excel and Markdown carry different promises

The CSV is UTF-8 with a byte-order mark so desktop Excel recognizes non-ASCII text without an import detour. The Excel exporter writes a real .xlsx with cells kept as text, useful widths, and an optional frozen bold header row. It does not recreate the source page’s colors, formulas, links or merged formatting: the normalized grid on screen is the workbook’s data contract.

That difference has a sharper edge than widths. A cell whose text begins with =, +, - or @ is read as a formula by Excel, Google Sheets and LibreOffice the moment the file opens, and a table scraped off a web page can carry anything. In the .xlsx that is a non-issue: every cell is written with its own text type, so a cell containing =1+1 is the four characters =1+1 and nothing runs. A CSV has no way to say that. The format is bytes and commas, with no channel for “this value is text”.

So the CSV export writes those cells with a leading apostrophe, which is the one thing a spreadsheet reads as “keep the rest as text”, and the page states how many cells were changed before you download and again after. The apostrophe is a real character in the file: if you are loading the CSV into a database or a script rather than a spreadsheet, strip it. If you would rather have the bytes exactly as the source page had them, take the Excel export — it protects the same cells without touching them. Markdown is written as it stands, because nothing executes a Markdown table.

Pipe-style Markdown has one extra constraint: it requires a header separator. If the source has no header row, neutral Column 1, Column 2 labels are added rather than silently turning the first data row into headings. For richer HTML-to-Markdown conversion—including surrounding prose and a loss report—use the HTML to Markdown converter.

What is read, and what is deliberately discarded

Cell text, line breaks, HTML entities, header cells, captions, row spans and column spans are read. Scripts, styles, event handlers and image requests are not executed because the parser works on the markup as text and never inserts it into the document. A table nested inside a cell is listed as its own table, so the data table inside an e-mail newsletter’s layout table can be exported on its own; in the containing table its text stays in that one cell, because a two-dimensional grid cannot fit inside one CSV field. Rows the page marks as hidden are counted, and you choose whether they go into the file.

Parsing and all three exports happen locally. You can verify that by opening the Network panel before pasting: the conversion adds no table-data request. The only lazy code fetched after an export click is CreatorValet’s own small CSV or workbook writer.

Have an idea for this tool?

Tell us what would make this tool more useful, or suggest another tool you would like us to build.

Questions

How do I convert an HTML table to CSV?

Paste the table itself or its HTML source above. The preview shows its real rows, columns and merged cells. Choose whether each covered position should repeat the merged value or remain blank, then download the UTF-8 CSV. Nothing is uploaded.

What happens to colspan and rowspan?

CSV has no merged-cell syntax. This tool therefore shows every span before export and makes the unavoidable choice explicit: repeat the visible value into every covered grid position, or keep it only in the top-left position and leave the rest blank. The same normalized grid is used for CSV, Excel and Markdown.

Can I extract a table from a website?

Yes, when the table is already visible in a page you can open. Drag the collector to your bookmarks bar, run it on that page and choose one of the real HTML tables it finds. It reads the current DOM only: it does not crawl the site, bypass a login, or turn a screenshot or CSS grid into data.

Can I export the same table to Excel?

Yes. The Excel button writes a native .xlsx with text cells, useful column widths and a frozen bold first row when you mark that row as headers. It does not reproduce colors, formulas, links or the original merged-cell formatting; it writes the normalized data shown in the preview.

Why does Markdown sometimes add Column 1 headers?

A pipe-style Markdown table must have a header separator. If the source has no header row, the tool adds neutral Column 1, Column 2 labels so no source row has to be promoted or discarded. CSV and Excel still begin with the original first row.

Is table data uploaded?

No. Pasted and opened HTML is parsed in this tab. The bookmarklet sends the chosen table directly between two browser tabs with an origin-bound message, with a JSON download as fallback. There is no endpoint that accepts the table.