Quillfold

Why rows go missing when you export a web table

You export a table and the spreadsheet is shorter than the list on the screen. Sometimes it is obvious (the page says “Showing 1 to 10 of 57 entries” and you have 10 rows). Sometimes it is not, and you only find out later that the last few hundred rows were never there.

There are four usual causes. Each has a quick check you can do in the browser, and the fix depends on which one you have.

First, find out how many rows there should be

Before changing tools, get a number to compare against.

  1. Look near the table for a total: “Showing 1 to 10 of 57 entries”, “1–20 of 345”, “57 results”. Japanese, Chinese and Korean sites often write it as 全 57 件, 共 57 条 or 총 57건.
  2. If the table is a spreadsheet-like grid, it may state its size in the page code. Right-click a row, choose Inspect, and look for aria-rowcount on the element with role="grid". That number includes header rows.
  3. If there is no total, note the first and last row you can see after scrolling to the very end, and check that both are in your export.

If you have no number at all, you cannot tell a complete export from an incomplete one. Every check below depends on it.

Cause 1: the rest of the rows are on other pages

The table shows 10, 25 or 50 rows and has Next, page numbers or a Load more button. The other rows are not in the page you are looking at; the site sends them only when you ask. Infinite scroll is the same thing without a button: the next batch arrives when you scroll to the bottom.

Anything that reads “the table on this page” — selecting and copying, Excel’s From Web, Google Sheets’ IMPORTHTML, most extensions in their simplest mode — gets only the batch that is loaded.

Check: the total near the table is larger than the number of rows on screen, or the scroll bar jumps when you reach the bottom.

By hand:

  • Look for a page-size setting (“Show 100 entries”) and set it to the largest value.
  • Look for the site’s own download or export button. If there is one, use it. It is usually the most complete and the most reliable source, and you do not need anything else.
  • If the address changes from page to page (?page=2, &start=20), each page can be loaded on its own by any tool. See When the next page isn’t captured.

Cause 2: the grid only draws the rows you can see

Large data grids, such as AG Grid and the grids in many admin dashboards, keep only the rows that fit on the screen in the page. As you scroll, they reuse the same few dozen rows and change their contents. The page may say it has 1,000 rows while only about 30 exist at any moment.

Check: right-click a row and choose Inspect. If the grid has aria-rowcount="1000" but you can count only a few dozen elements with role="row", it is a virtualized grid. Another sign: when you scroll fast, rows appear blank for a moment before filling in.

Selecting and copying gets only the rows that exist at that moment. So does any tool that reads the page once.

By hand: scroll a screen at a time and copy each part, then remove the overlaps. It works for a few hundred rows and becomes error-prone after that. If the grid has its own export button, use that instead.

Cause 3: the rows arrive after the tool has read the page

Some pages load the table a moment after the rest of the page, or fill it in batches. A tool that reads the page “when it has finished loading” can read it before the rows are there.

Check: reload the page and watch. If the table appears after a spinner or a short delay, this can apply.

Microsoft’s documentation for the Power Query web connector says this directly: “Pages that load their content dynamically can sometimes be inconsistent since the content can change after the browser considers loading complete” (Troubleshooting the Power Query Web connector, last updated 2025-12-01, read 2026-10-07).

Cause 4: rows are hidden on the page

Collapsed groups, filtered views and “show more” rows inside a table can exist in the page but be hidden. Different tools treat hidden rows differently: some keep them, some leave them out.

Check: expand all groups and clear filters on the site before exporting, then compare the count again.

What each method can do (as of October 2026)

MethodPages / Load more / infinite scrollGrids that draw only visible rowsTells you if rows are missing
Select and copyOne page at a timeOnly the rows on screenNo
Excel, Data > From WebOne address per query; combine pages yourself (see below)Not documented by MicrosoftNo
Google Sheets IMPORTHTMLOne address per formulaNot documented by GoogleNo
Instant Data ScraperListed: pagination, next page “via buttons or links”, infinite scrollNot listedNot listed
Table CaptureListed as paid: “Capture multi-page tables and tables that load as you scroll”; free exports listed as “up to 250 rows”Not listedNot listed
TableHarvestNext, page numbers, Load more, infinite scroll (free plan: up to 3 pages per capture)YesYes

Sources for each row are listed at the end. “Not listed” means we did not find it in the product’s listing or documentation on 7 October 2026; it may still work in some cases.

Excel and Google Sheets

Excel’s Data > From Web and Google Sheets’ IMPORTHTML each read one address. If the table is spread over pages that have their own addresses, you can import each page and stack them: in Excel with Append in Power Query (“The append operation creates a single table by adding the contents of one or more tables to another”, Microsoft Learn, updated 2026-04-08), in Google Sheets with one formula per page. Microsoft’s guidance for automatic paging in Power Query is written for people building custom connectors, not for the Excel interface. If the pages do not have their own addresses (the address stays the same when you click Next), neither tool can reach them. See Excel “From Web” can’t see your table and IMPORTHTML returns an error or the wrong table.

Browser extensions

The listings of the two most widely used table extensions say, as of 7 October 2026:

  • Instant Data Scraper (1,000,000 users, version 1.7.1, updated 23 August 2026): “Support for pagination on websites”, “Automatic navigation to next page via buttons or links”, “Support for infinite scrolling” and “Detecting when dynamic data has loaded”. It is free. We did not find a row-count check or handling for grids that draw only visible rows in its listing.
  • Table Capture (200,000 users, version 11.0.44, updated 28 September 2026): the free tier lists “Exports of up to 250 rows”. Multi-page tables and tables that load as you scroll are listed under its paid tier. If an export from Table Capture’s free tier stops at 250 rows, that is the stated limit, not a fault.

Side-by-side comparisons, with the cases where the other extension is the better choice: Instant Data Scraper or TableHarvest? and Table Capture or TableHarvest?

What TableHarvest does for missing rows

TableHarvest is our extension. This is what it does today (behaviour covered by its automated tests and a check on public sites on 6 October 2026):

  • Count check. It looks for a stated total near the table (“Showing 1 to 10 of 57 entries”, “1–20 of 345”, 全 57 件, 共 57 条, 총 57건, and aria-rowcount on grids) and compares it with the rows captured. The panel shows whether they match, or how many are missing.
  • Pages. It follows Next buttons, page numbers, Load more and infinite scroll. On the free plan, one capture follows up to 3 pages; when it stops at that limit it says so, and the rows already captured can still be downloaded. Pro removes the page limit.
  • Grids that draw only visible rows. It scrolls the grid step by step and collects rows by their row index, so rows are not skipped or counted twice in our tests. On the AG Grid demo page it collected 1,000 of 1,000 rows in our check on 6 October 2026. This is free.
  • Stop reasons. If a capture ends early (no Next button found, the page stopped changing, a time-out, the free page limit), the panel says which, and what to try next.
  • A record in the file. XLSX downloads include a Report sheet with the source address, the time, the pages and rows captured, and the result of the count check.

It does not read tables drawn on a <canvas>, content inside closed shadow DOM, or frames from another site.

When you don’t need any of this

  • The site has an export or download button: use it.
  • The data is published as CSV or through an API: use that file. Google Sheets can load a CSV address with IMPORTDATA(url).
  • The table fits on one page and has no total to check against: selecting and copying, or Excel’s From Web on Windows, is enough.

Sources

Read on 7 October 2026.

All guides