You found a table on a web page — a pricing list, a sports stat sheet, a stock table, a Wikipedia comparison. You want it in Excel or Google Sheets so you can sort, filter or do math on it. You select it, copy, paste… and the whole thing collapses into one mangled column. Numbers become text. Merged cells scatter. You end up retyping it by hand.
Here are the ways to get a web table into a spreadsheet cleanly — starting with the built-in methods (free, no install), and when each one breaks.
Method 1 — Excel's built-in "From Web"
Excel can pull a table straight from a URL.
- In Excel, go to Data → Get Data → From Web (on Excel for Windows; on Mac it's Data → From HTML or From Web depending on version).
- Paste the page URL and click OK.
- Excel's Power Query window lists the tables it detected. Pick one, click Load.
When it works: simple, well-structured tables on a public URL.
Where it breaks:
- The page is behind a login, or built by JavaScript after load — Power Query fetches the raw HTML and sees nothing.
- The "table" is actually a grid of
<div>s (lots of modern sites) — Power Query won't recognize it as a table at all. - You only want one small table on a page full of them, and Excel shows you a confusing list of "Table 0, Table 1, Table 2…" with no labels.
Method 2 — Google Sheets IMPORTHTML
Google Sheets has a formula for exactly this:
=IMPORTHTML("https://example.com/page", "table", 1)
The last argument is the table's index on the page (1 = first table, 2 = second, and so on).
When it works: public pages with real <table> elements.
Where it breaks:
- Same login / JavaScript-rendered problem as above —
IMPORTHTMLonly sees the initial HTML. - You have to guess the index. Getting the right table is trial and error: change the number, wait, check, repeat.
- It pulls a live link, not a snapshot — if the page changes or disappears, your data changes or breaks.
- No control over formatting; merged cells often land in the wrong place.
Method 3 — Paste Special
Sometimes plain paste fails but Paste Special → Text (or Paste values only in Sheets) does better, because it forces the spreadsheet to re-parse the clipboard.
Where it breaks: still chokes on merged cells (rowspan / colspan) and on tables that were styled with <div>s rather than real table markup.
Why copy-paste breaks in the first place
A rendered HTML table and a spreadsheet grid are two different data models. When you copy a table, the browser hands over a blob of text that looks tabular but rarely maps cleanly — especially with merged cells, nested markup inside cells, or <div>-based layouts pretending to be a grid. The spreadsheet does its best guess, and the guess is often wrong.
Method 4 — One-click with a browser extension
If you do this often, the fastest path is a browser extension that reads the table the same way your browser already rendered it (so JavaScript-built and <div>-based tables work), and hands you clean output.
Table Grab is a small, free Chrome extension that does this:
- Open the page with the table.
- Click the Table Grab icon — it lists every table on the page, each with a smart title pulled from the surrounding content (not "Table 1, Table 2").
- Hover to preview and highlight the exact table on the page.
- Click Copy or Download as CSV (opens directly in Excel / Sheets / Numbers), Excel, Markdown or JSON.
Because it reads the table from the page you're actually looking at:
- Pages behind a login or built by JavaScript work fine.
- Merged cells (
rowspan/colspan) are expanded into the correct columns instead of collapsing. - The CSV is UTF-8 with a BOM, so accented and CJK characters don't turn into garbage in Excel.
- No row limit, no sign-up, no API key, no backend — everything runs locally in your browser, nothing is uploaded.
Which method should you use?
| Situation | Best method |
|---|---|
| One simple table, public URL, you live in Excel | Excel From Web |
| You want a live, auto-updating link in Sheets | IMPORTHTML |
Table is behind a login / built by JavaScript / made of <div>s |
Browser extension (Table Grab) |
| You want it once, clean, in any of CSV/Excel/Markdown/JSON | Browser extension (Table Grab) |
The native methods are great when they work and cost nothing to try first. When they break — and on modern, login-gated, JavaScript-heavy pages they often do — a one-click extension is the reliable fallback.
Free, no sign-up: Table Grab on the Chrome Web Store


Top comments (0)