Build Lab / One-click browser automation Shipped

TableGrab — any web table to clean CSV, in one click.

A zero-install browser tool that turns any web table into a spreadsheet-ready CSV. It expands merged cells, drops CSS-hidden columns, normalizes number formats, and blocks CSV formula injection.

“Sixty automated assertions run it in headless Chromium against tables built to break it, and the failure modes are published on the page.”

See it work

Thirteen seconds, no edit: the tool runs against the deliberately hostile test table on its own page—merged headers, a hidden column, accounting-parenthesis negatives, European decimals, and footnote markers glued to the labels.

One click detects every table on the page, exports a 7 × 5 grid to CSV, then reveals the author-hidden column on demand—the badge count shifts to 8 × 6.

The problem

Business data lives in HTML tables nobody can export: supplier portals, internal dashboards, regulatory filings, wiki pages, admin panels with no download button. The manual path is copy, paste, then fight the result—and the result is broken in four predictable ways:

So people retype—30 to 60 minutes per table, introducing typos into numbers that decisions then get made on.

Before and after comparison: a messy pasted web table versus TableGrab's clean rectangular CSV output
Before: a pasted staircase of merged cells and text-numbers. After: a clean rectangle, ready to pivot.

The architecture

One self-contained tool you drag to your bookmarks bar. No extension, no server, no build step at runtime. The UI renders in a shadow root so the page’s CSS can’t break the overlay—and the overlay can’t break the page.

  1. 01
    Find candidates

    Real tables plus ARIA grids; layout tables filtered out, same-origin iframes traversed.

  2. 02
    Build the grid

    Rowspan/colspan expanded into a true rectangle with merged values filled down and across.

  3. 03
    Mark hidden

    Computed styles, hidden attributes, aria-hidden, and zero-width cells detected.

  4. 04
    Extract & normalize

    Footnotes stripped, currency and separators removed, (n) to -n, European decimals converted.

  5. 05
    Serialize safely

    RFC 4180 CSV with UTF-8 BOM and a formula-injection guard on every cell.

  6. 06
    Collapse the header

    A two-level header expands to Revenue over Q1 and Q2, which reaches a spreadsheet as two near-duplicate rows. The parts are joined per column into one header: Revenue Q1, Revenue Q2.

  7. 07
    Deliver

    Download as CSV, or TSV to the clipboard for direct paste into a sheet.

TableGrab's overlay highlighting a detected table, with a badge showing its 7 by 5 dimensions and CSV and Copy buttons
Each detected table gets a badge with its true dimensions and one-click export.
The TableGrab control panel showing four tables found, with toggles for cleaning numbers and including hidden rows and columns
The control panel: what was found, and the two decisions you're allowed to make.

The guardrails

Verified result

Two automated suites—60 assertions—run against real Chromium via Playwright. Not a demo walkthrough: exact-output assertions on the shipped, minified artifact. Highlights:

Known limits—virtualized grids, cross-origin iframes, canvas-rendered tables—are published on the tool’s own page, not buried. Predictability is the feature.

The whole deliverable is one self-contained page: the installer, four live test tables built to break it, the explanation, and the fully annotated source. Try it live ↗

Data stuck in a page somewhere?

Let’s get it out cleanly.