How to export an HTML table to CSV
Use a tool that reads the table from the loaded page and writes a proper CSV: comma-separated, cells with commas, quotes or line breaks wrapped in double quotes, merged cells expanded so columns line up, and UTF-8 with a byte order mark (BOM) so Excel on Windows shows accents and non-Latin text. In Table Export, click the icon and then CSV next to the table; the file goes to Downloads.
CSV is the simplest way to move a table between tools, but a CSV that looks fine in a text editor can still open wrong in Excel. This guide covers how to save a web table as CSV and the details that make the file open correctly everywhere.
Quick steps
- Open the page. Open the page with the table in Chrome and wait until it has fully loaded.
- Pick the table. Click the Table Export icon. The popup lists every <table> on the page with its rows × columns and first row.
- Save as CSV. Click CSV next to the table. A UTF-8 file named after the table's caption or heading is saved to your Downloads folder.
- Open the file. Double-click to open in Excel, or in Google Sheets use File › Import › Upload.
What a correct CSV needs
- Quotes around any cell that contains a comma, a double quote or a line break, with inner quotes doubled (RFC 4180).
- CRLF line endings, which every spreadsheet reads.
- UTF-8 with a byte order mark (BOM). Without the BOM, Excel on Windows may show accented letters and non-Latin text as garbage characters.
- The same number of columns on every row. Tables with merged cells (rowspan/colspan) need those cells expanded first, or the columns drift.
Formula injection
A cell that starts with =, +, - or @ is treated as a formula by spreadsheets. If a web table contains text like =HYPERLINK(...), opening the CSV can run it. Table Export prefixes such cells with an apostrophe so they open as plain text; plain numbers and percentages such as -12 or +3% are left alone.
Other ways to do it
Developer tools: in the console, a few lines of JavaScript can walk table.rows and join the cells, but you have to handle quoting, merged cells and the BOM yourself, every time.
Paste then save: copy the table into a spreadsheet and use File › Save As › CSV. This works but adds a step and inherits any paste problems.
Scripts: Python with pandas.read_html() parses tables from a URL. Good for repeated jobs on public pages; it cannot see pages behind a login or built by JavaScript.
Large tables
The free version saves every row of a table, with no row limit. Pro (a one-time license, no subscription) can save every table on the page in one click.
Tables that load more rows as you scroll or page through them only contain the rows currently on the page. Show all rows first (many sites have a 'show all' or page-size setting), then export.
Want to try it first? The demo page has a plain table, one with merged cells and a long one.
FAQ
Why do accented characters look wrong when I open the CSV in Excel?
Excel on Windows assumes a legacy encoding unless the file starts with a UTF-8 byte order mark. Table Export writes the BOM by default, so names like São Paulo or Zürich open correctly.
What happens to merged cells?
A cell that spans several rows or columns is repeated into each position it covers, so every row has the same number of columns and the data stays aligned with its header.
Is the table sent to a server to convert it?
No. Table Export reads the table and builds the CSV inside your browser. Nothing from the page, including its URL, is sent anywhere.
Updated 2026-10-25.