The easiest way to extract a table from any web page
You found the data you need — a pricing grid, a stats table, a list of results — on a web page, and you want it in a spreadsheet to sort, filter, or do the math. Getting it out cleanly is surprisingly fiddly. Here are the real options to extract a table from a website, what each is good at, and where each breaks.
Option 1: Copy and paste
The obvious move: highlight the table, copy, paste into Google Sheets or Excel.
Sometimes it works. Often it doesn't. You grab half a row above and a stray column below; the paste lands everything in one cell or smears merged headers across the wrong columns. Numbers arrive as text because they carried a $ or a thousands-separator comma, so your SUM returns zero. Footnote markers like [1] ride along and poison a column. Fine for a tiny, clean table — a cleanup chore for anything wide, long, or formatted.
Option 2: =IMPORTHTML in Google Sheets
Google Sheets has a built-in function for this:
``
=IMPORTHTML("https://example.com/page", "table", 1)
``
When the page cooperates, it's genuinely great — the data stays live and refreshes on its own.
The catch is which pages cooperate. IMPORTHTML reads only the raw HTML the server sends; it doesn't run the page's JavaScript and isn't logged in as you. So it fails on two huge categories of modern site:
- JavaScript-rendered tables. Dashboards, sports and finance stats, anything "interactive" — the table is built in your browser after the page loads, so it isn't in the HTML Google fetches. You get
#N/Aon a table you can plainly see. - Login-only pages. If the table appears only when you're signed in, Google's servers can't reach it.
Worth trying first on static pages — but a dead end on the very sites people most often need.
Option 3: Dev tools or a scraper
You can open your browser's developer tools, find the <table> in the DOM, and copy it — or write a few lines of Python with pandas.read_html(). Powerful, and it handles login-only pages once you're signed in. But for most people it's overkill: a steep climb for what should be a ten-second task, and a brittle script breaks the moment the site's markup changes.
Option 4: A one-click extension
For most people, most of the time, the easiest path is a browser extension that reads the table already rendered on your screen and hands you a spreadsheet.
The key insight: your browser has already done the hard part. It ran the JavaScript and it's logged in as you, so the finished table is right there in the page. A good extension reads that rendered structure — no screenshots, no OCR — so columns line up and numbers come across as numbers.
Two things separate a tool worth installing from one that wastes your time:
- No row caps. Plenty of extractors let you see a big table but quietly cap the export, or put "download" behind a paywall. If your data has 800 rows, you need all 800.
- Handles JavaScript-rendered tables. This is exactly the case IMPORTHTML can't touch, and the whole reason to reach for a browser tool.
Table to Sheets is built around both. Click the toolbar button on any page and it finds every table, lists them, and lets you pick one. Because it reads the page's rendered HTML, it works on JavaScript-built and logged-in tables — the ones formulas miss. Export to a clean CSV is free and unlimited: no row caps, no "upgrade to download" wall. It runs only when you click, and your data never leaves your browser — no tracking.
If you live in Google Sheets, the Pro plan ($5/mo) adds one-click export straight to a new Google Sheet, plus a clean mode that strips footnote markers ([1]), thousands-separator commas, and leading $/£.
Which should you use?
- Small, clean, static table? Copy-paste, or
=IMPORTHTMLto keep it live. - JavaScript-rendered or login-only table? Skip the formula — pull it from your rendered browser with a click-to-export extension.
- Recurring, code-heavy pipeline? A scraper earns its keep.
The short version
- The hardest tables to extract — JavaScript-rendered and login-only — are exactly the ones copy-paste and IMPORTHTML handle worst.
- The easiest reliable path for most people is a one-click extension that reads the table already rendered in your browser.
- The two things to look for: no row caps and support for JavaScript-rendered tables.
- Table to Sheets does both — free unlimited CSV export, with Google Sheets export and number-cleaning on Pro.
Get Table to Sheets — free
Export any table on any web page to a clean CSV in one click. Free and unlimited — no row caps. One click to Google Sheets with Pro.
Add to Chrome