Search the Chrome Web Store for "table to Excel" and you get a page of extensions that all describe themselves the same way. The differences between them are real, but none of them are visible from the store listing, and a couple of them only show up after you have already put your data through the tool.
Here is what actually varies, and how to check each one yourself. Most of these take under two minutes. Full disclosure: I wrote one of these extensions, and I have said where it stands on each point, including where it does not win.
Row caps are the standard limit, and they are placed to bite: a few hundred rows is enough for the tables you did not really need help with, and not enough for the one you did.
How to check. Find a page with a thousand-row table — a Wikipedia list, a long search-results page — export it, and count what you got. Do this before you need it, not during.
Read the store listing for the words "up to", "per day" and "per month" as well. Some tools cap exports per day rather than rows per export, which is harder to notice and just as annoying.
<table>Most data on the modern web is not in table markup. React, Angular, AG Grid, MUI DataGrid, TanStack Table and most in-house admin panels render nested div elements and describe the structure with ARIA roles instead. An extension that only looks for <table> finds nothing there and usually says "no tables on this page", which reads like a bug in the page rather than a limit of the tool.
How to check. Open any AG Grid or MUI DataGrid demo page and run the extension on it. Or on the page you care about, right-click a cell, Inspect, and look at what encloses it. If you see role="row" and role="gridcell" rather than <tr> and <td>, you need an extractor that reads ARIA grids.
This is the single biggest functional difference between these tools.
Grids that stream rows as you scroll keep only the visible ones in the page. No extension can read rows that are not there — that part is physics, not a missing feature. What separates the tools is what they do about it: hand you 50 rows out of 2,000 without comment, or say so.
How to check. Open a long virtualised grid, do not scroll, and export immediately. If you get a small number of rows and no warning, you now know that every export from that tool needs checking by hand.
There is more on how to confirm and work around this in why your table export only has the rows you can see.
On the store page, under Permissions or Site access, an extension will say one of two things.
"Read and change all your data on all websites" means it can read every page you open, at any time, whether or not you are using it. That is a lot of trust for a table exporter, and it is a standing risk if the extension is ever sold or compromised — this has happened to popular extensions more than once.
"activeTab" means it can only read a page at the moment you click its icon, and only that page.
How to check. The store listing has it. After installing, chrome://extensions, Details, Site access.
There are legitimate reasons to want the broader permission — an extension that adds an export button into the page has to be in the page all the time. Just know which trade you are making.
An extension that converts a table to Excel does not need a server. Some send the table off anyway, for cloud storage, sync, or an AI feature.
How to check. Open the extension's popup with DevTools' Network tab open (right-click the popup, Inspect) and export something. Any request to a domain that is not the page you are on is worth understanding. The store listing's privacy section also has to declare data collection, and that declaration is enforceable, so it is worth reading.
A header with a rowspan occupies several rows on screen but exists once in the markup. Tools that copy the markup literally leave the rows below it short by one cell, so every column in those rows shifts left. Nothing errors; the numbers just end up under the wrong headers.
How to check. Run it on a Wikipedia table with merged region or season cells, then compare a row from the bottom third against the page.
Four details decide whether the file opens cleanly:
=, +, - or @ is a formula as far as a spreadsheet is concerned. An exporter should neutralise those, because otherwise a web page can put a formula in your sheet..xlsx, not HTML with a spreadsheet extension. Some tools write an HTML table and name it .xls. Excel opens it, but with a "the file format and extension don't match" warning, and other tools reject it outright.How to check. Export a table, open the file in a text editor. You will see immediately whether it is a real workbook, whether there is a BOM, and what the separator is.
For a tool you use twice a month, a subscription is a bad deal in a way that is obvious in advance and easy to forget at signup. Also check what happens when you stop paying: some tools stop exporting, some keep working on what you already have.
How to check. The store listing shows the last update date. Anything more than a year old on Manifest V2 is at risk — Chrome has been disabling those. Read the recent reviews rather than the score: a 4.5 average built up over five years tells you nothing about the state of the extension today.
| Check | How | Two minutes? |
|---|---|---|
| Row cap on free tier | Export a 1,000-row table, count | Yes |
| Reads div and ARIA grids | Run it on an AG Grid demo | Yes |
| Warns on virtualised grids | Export without scrolling first | Yes |
| Site access | Store listing, Permissions | Yes |
| Sends data anywhere | DevTools Network tab while exporting | Yes |
| Merged cells | Wikipedia table, check a bottom row | Yes |
| Output quality | Open the exported file in a text editor | Yes |
| Pricing model | Store listing | Yes |
| Maintained | Last update date, recent reviews | Yes |
Since that list is the one I designed GridPick against, the honest version:
The free tier has no row cap at all — that was the point of building it. It reads ARIA grids, iframes and open shadow roots as well as <table> markup. It compares the rows in the page against what the grid claims and tells you when they disagree. It asks for activeTab rather than all-sites access. It expands rowspan and colspan into a rectangular grid and lets you pick whether merged values repeat or leave blanks. CSV carries a BOM, the delimiter is yours to choose, cells that start with = are neutralised, and the .xlsx is a real workbook. Nothing is uploaded; there is no server and no account. Pro is a one-time payment.
Where it does not win: activeTab means it cannot see anything the page has not rendered yet, so a virtualised grid still has to be scrolled through first — it will tell you, but it cannot do it for you. The free tier covers the clipboard and CSV; Excel, JSON and Markdown export are Pro. And it is new, so it has none of the review history that item 9 tells you to look for. That is a fair thing to hold against it.
GridPick does this for you. It reads real tables and div-based grids, expands merged cells, warns you when a grid is only half loaded, and exports to Excel, CSV, JSON or Markdown. The free version has no row limit; Pro is a one-time payment.