How to export an HTML table to CSV

In short: Convert an HTML table to CSV in one of three ways: paste it into a spreadsheet and save as CSV UTF-8, use a no-code extension that writes the file for you, or build the CSV in the browser console. Whichever you pick, keep UTF-8, the right delimiter, and correct quoting.
First, is it really a table?
Right-click the data and choose Inspect. If you see a <table> element with <tr> rows and <td> cells, the methods below apply directly. If instead you see a grid of <div> "cards," it is a styled layout, not a table — jump to the extension method, which detects lists as well as tables.
Method 1 — Copy, paste, save as CSV
- Select the table on the page and copy it.
- Paste it into an empty spreadsheet.
- Choose File > Save As (or Export) and pick CSV UTF-8.
Simple and reliable for a single, small, well-behaved table. The weak spots: numbers with thousands separators can shift columns, and cells that contain commas or line breaks need proper quoting, which manual paste does not always get right.
Method 2 — A no-code extension (recommended)
The cleanest path is a tool that reads the rendered table and writes the CSV for you; a good exporter quotes fields correctly, keeps UTF-8, and handles cells with commas or newlines. ScrapeSheet detects the table in your browser and exports it in two clicks.
- Install ScrapeSheet from the Chrome Web Store and pin it.
- Open the page and click the ScrapeSheet icon.
- Click Extract; it detects the table (and any lists) on the page.
- Export the result as CSV. You can also send it to Excel (
.xlsx) or the clipboard.
Because it reads the page as your browser displays it, it can also pick up tables that scripts add after loading, and it detects lists as well as real <table> elements. If the table spans several pages, Pro can follow pagination and infinite scroll and export everything in one file. The free plan allows up to 20 rows per export and one page per run; ScrapeSheet Pro (€12.99 per month) removes both limits.
Method 3 — The browser console (for technical users)
If you are comfortable with DevTools, you can select the table and build a CSV string in JavaScript by looping over its rows and cells, joining cell text with commas and rows with newlines, and then downloading a Blob. It is quick for a one-off if you already know the DOM, but it is fiddly to get quoting and encoding right, and it breaks whenever the markup changes. For most people the extension is faster and safer.

Avoid the classic CSV headaches
Encoding
Always save as UTF-8. Otherwise, accents and symbols (é, ñ, €, £) can turn into garbage when the file is opened elsewhere.
The delimiter
"CSV" usually means commas, but some locales (much of Europe) expect a semicolon because the comma is the decimal mark. If Excel dumps everything into one column, open it with Data > From Text/CSV and pick the right delimiter, or switch your file to semicolons.
Quoting
Any cell that contains a comma, a quote, or a line break must be wrapped in double quotes, with internal quotes doubled — the rules documented in RFC 4180, the reference for the common CSV format. A good exporter does this automatically; hand-built CSVs often do not, which silently corrupts rows.
CSV or Excel — which should you export?
- CSV: smallest, most portable, perfect for importing into other tools, databases, or Google Sheets.
- Excel (.xlsx): keeps number formats, multiple sheets, and data types; better if a human will work in it directly.
With ScrapeSheet you can pick either at export time, so you are not locked in. For the full Excel walkthrough, see how to scrape a website to Excel, or browse more guides on the ScrapeSheet blog.
FAQ
What is a CSV file?
CSV stands for comma-separated values: a plain-text table where each line is a row and commas separate the columns. Every spreadsheet app opens it.
How do I convert an HTML table to CSV without coding?
Open the page, use a no-code extension like ScrapeSheet to detect the table, and export it as CSV, so you do not have to build the file by hand.
Why does my CSV look wrong in Excel?
Usually an encoding or delimiter mismatch. Save as UTF-8, and in some locales use semicolons instead of commas, or import the file with Data > From Text/CSV and pick the delimiter.
Sources
General information, not legal advice. Always check the website's terms and the data-protection rules that apply to you.