How to export all rows from a data grid (AG Grid and others)
Short answer: Many data grids keep only the rows on screen in the page. A plain export, or copy and paste, then gets 30 or 40 rows instead of thousands. GridScoop marks these grids as virtualized. Capture full grid scrolls through them and stitches every row into one table, which you then export to Excel, CSV, Google Sheets, Markdown or JSON. It recognises AG Grid by name and reads other grids when they use standard table or grid markup.
Why rows go missing: virtualized grids
A grid with thousands of rows would be slow if the page built every row at once. So many grids are virtualized: the page builds only the rows you can see, plus a few more, and replaces them as you scroll. The grid still knows the full row count, and the scrollbar looks right, but at any moment most rows are not in the page.
Anything that reads the page at one moment sees only that window. Copy and paste does. So do spreadsheet web imports and most table extensions. The export looks fine but stops after a screenful of rows.
Some grids do the same with columns: off-screen columns are left out until you scroll sideways.
How GridScoop finds grids
When you click the GridScoop icon, it scans the page you are on and lists what it found, up to 50 items, virtualized grids first and then the largest. It looks for three things:
- ordinary HTML tables, except tables marked as layout only (
role="presentation"orrole="none"); - elements marked with the ARIA roles
table,gridortreegrid, the standard way accessible grids describe themselves; - AG Grid, recognised by its own page structure even when its outer wrapper carries no ARIA role.
It marks an item virtualized when one of these is true:
- the grid reports a row count (
aria-rowcount) well above the rows actually in the page; - it is an AG Grid with fewer than 250 rows in the page;
- it has fewer than 250 rows in the page, and its scroll area is far taller than the space those rows take up.
A marked grid shows this note: This grid renders only visible rows — a plain export would miss most data. "Capture full grid" scrolls and stitches everything.
How to capture every row
- Open the page with the grid and wait until it has loaded.
- Click the GridScoop icon and select the grid in the list.
- Click Capture full grid. Keep the popup open: GridScoop says it is scrolling through rows, this can take a minute.
- When it finishes, it reports Captured … rows.
- Click a format: Excel, CSV, Copy for Sheets, Copy Markdown or JSON.
What happens during a capture
- GridScoop scrolls the grid back to the top, then moves down a little less than one visible height at a time, waiting briefly after each step for the grid to draw new rows.
- It joins the rows it sees into one table. Where the grid numbers its rows, it uses those numbers, so no row is counted twice. Otherwise it matches each new batch against the end of what it already has.
- It stops at the bottom of the grid, or at the first of these limits: 100,000 rows, 4 million cells, 400 scroll steps or 90 seconds. Then it says Captured … rows (stopped early — page limit or timeout).
- At the end it scrolls the grid back to where you left it.
Capturing is free and does not use your daily rows. Only the export counts: 300 rows a day on the free plan, and one export never costs more than 300, so even a 12,000-row grid can be exported once a day. Pro removes the daily limit.
AG Grid
AG Grid is the one grid library GridScoop has specific code for:
- Headers: it reads AG Grid's header rows and skips the floating-filter row, so filter boxes do not end up as a second header.
- Pinned columns: AG Grid keeps left- and right-pinned columns in separate parts of the page. GridScoop joins them back to the right row by row number.
- Scrolling: it scrolls AG Grid's own body area.
- Hidden columns: if the grid reports more columns than GridScoop could read, it adds Some columns may be missing — this grid renders only visible columns.
- Pages: for an AG Grid that pages instead of scrolling, Merge pages recognises AG Grid's paging panel and its next-page button.
DataTables, Kendo UI, MUI and other grid libraries
GridScoop has no code written for DataTables, Kendo UI, MUI, Handsontable or other libraries. It reads them through the same general rules as any page: an HTML table, or an element with the ARIA roles above. Whether a particular grid qualifies depends on how the site builds it. The quickest test is to open GridScoop on the page and see if the grid is listed.
- Listed and marked virtualized: use Capture full grid.
- Listed, not marked: every row is probably already in the page, so export directly. Compare the row count in the list with what the site shows.
- Split into pages: use Merge pages. It looks for a next-page control near the table, inside the page's pagination area: a button or link labelled Next, ›, » or >. It clicks through up to 50 pages and adds each one to the first. It never clicks a form's submit button.
- Not listed: see the next section.
When it won't work
| Situation | What you see | What to do |
|---|---|---|
| Grid inside a frame | The grid is not listed, or No tables or grids on this page. | Right-click the frame, choose Open frame in new tab, run GridScoop there |
| Grid inside a web component (shadow DOM) | The grid is not listed | Not supported in the current version |
| Chrome's own pages, the Chrome Web Store | This page can't be scanned (browser or store pages). | No extension can read these pages |
| A file opened from your computer | A message about file URLs | Turn on Allow access to file URLs for GridScoop at chrome://extensions |
| Grid drawn without table or grid elements, for example on a canvas | The grid is not listed | Use the site's own export, if it has one |
| GridScoop cannot find the grid's scroll area | Captured … visible rows — couldn't reach the grid's scroll area, so the result may be incomplete. | Use the site's own export, if it has one |
| The grid rebuilds itself while scrolling | stopped early | Export what was captured and check the row count |
Limits of a plain export
Without a capture, GridScoop reads what is in the page: up to 20,000 rows, 1,024 columns and 2,000 characters per cell. If a table has more rows, the result notes Row limit reached — the export may not include every row. While such a table is selected, the popup keeps a warning on screen: This capture may be incomplete — a row or column limit was reached. Check the result before relying on it.
Whatever route you take, compare the exported row count with the total the site shows before you rely on the file. For the wider picture, including Excel's own web import and copy and paste, see how to export a table from a website to Excel.
Questions
Why does my export have fewer rows than the grid shows?
The grid is probably virtualized: the page keeps only the rows on screen and swaps them as you scroll, so a plain export reads only those. In GridScoop, select the grid and click Capture full grid before you export.
Does GridScoop support AG Grid?
Yes. GridScoop recognises AG Grid by its own page structure: it reads the header row, joins pinned columns to their rows and scrolls the grid's body to collect every row. If AG Grid also hides off-screen columns, GridScoop warns that some columns may be missing.
Does it work with DataTables, Kendo UI or MUI grids?
There is no code written for those libraries. GridScoop reads any standard HTML table and any element marked with the ARIA roles table, grid or treegrid. If the grid you are looking at uses one of those, it appears in GridScoop's list; open the popup to see.
How many rows can Capture full grid collect?
Up to 100,000 rows or 4 million cells, in at most 400 scroll steps and 90 seconds. It says "stopped early" when it hits one of those limits.
Does capturing the full grid use my free rows?
No. Capturing is free. Rows are counted only when you export: 300 rows a day on the free plan, and one export never costs more than 300.