TTable to Sheets

2026-06-18 · Table to Sheets guide

5 alternatives to IMPORTHTML when it can't fetch the table

=IMPORTHTML() is the obvious first thing to reach for, and on the right page it's genuinely the best tool available. It's free, it lives in the sheet, and it re-fetches on its own — so a static, public HTML table stays up to date without you touching it again.

The trouble starts when the page isn't that. IMPORTHTML fetches raw HTML from Google's servers; it doesn't run JavaScript and it isn't signed in as you. If the table is built in the browser after load, or sits behind a login, no amount of tweaking the index will help. Here are five real alternatives, and where each one actually fits.


1. IMPORTXML with an XPath

=IMPORTXML(url, "//table[2]//tr") targets an exact element instead of a numbered table, which makes it the right upgrade when your data isn't a real <table> — a grid of <div>s, a definition list, a set of spans.

2. IMPORTDATA for CSV or TSV endpoints

=IMPORTDATA("https://example.com/data.csv") pulls a delimited file straight in. It's worth ten minutes of hunting: plenty of sites that render a fancy JavaScript table are quietly feeding it from a .csv URL you can use directly.

3. Google Apps Script with UrlFetchApp

Writing a short script gives you real control — headers, pagination, JSON parsing, scheduled triggers, and cleanup before anything lands in the sheet.

4. A browser extension that reads the rendered table

This is the one that covers the cases the formulas can't. Your browser has already run the page's JavaScript and is already signed in — the finished table is on screen. An extension reads that rendered HTML instead of re-fetching the page.

Table to Sheets works this way. Click the toolbar button, it finds every table on the page, and you export the one you want. CSV export is free and unlimited, with no row cap. The $5/mo Pro adds one-click export to a new Google Sheet, plus a clean mode that strips [1] footnote markers, thousands separators, and leading $/£ so your numbers arrive as numbers. It reads structure, not pixels — no OCR — runs only when you click it, and doesn't track you.

5. The site's own API or export button

Check for this first, honestly. A documented API or a real "Export to CSV" button gives you clean, typed, complete data with no scraping fragility and no terms-of-service grey area.

How to pick

  1. Look for an export button or API. Best data, least maintenance.
  2. Need it to auto-refresh? Stay in formula-land — IMPORTDATA if there's a CSV, IMPORTXML if the page is static, Apps Script if there's an API.
  3. Getting #N/A on a table you can plainly see? The page is JS-rendered or login-only. Grab it from the browser instead — no formula will reach it.

The short version

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

Related guides

Related free tools