On Air
| FM 98.5 MHz | STEREO
Why a clean-looking web table turns to junk in Excel
Technology

Why a clean-looking web table turns to junk in Excel

| Technology |

The usual reasons a copy from Chrome wrecks columns, and a local capture workflow that keeps headers, types, and merged cells under control.

Why a clean-looking web table turns to junk in Excel

The table on the page looks finished. Headings line up. Numbers sit in a column. You copy it. Excel gives you one fat column, or five columns and a ghost, or a header that landed in row 18. You start to believe you are bad at spreadsheets. You are not. You asked a layout engine to talk to a calculation engine using the clipboard as a translator.

I still try copy and paste on simple pages. Sometimes it works. I stop treating “sometimes” as a method.

What the clipboard actually receives

The browser copies more than the text you see. It copies HTML, maybe a plain-text fallback, maybe extra markup from a wrapper div. Excel then guesses.

A cell that contains a line break becomes two rows.

A merged heading becomes three cells with two of them empty and one of them loud.

A number with a thin space as a thousands separator becomes text.

An image in a cell disappears and leaves a blank that shifts the next value left.

A hidden column used for sorting appears because it exists in the DOM.

The page was honest. It was just not built for Excel.

Merged cells are a display trick

Sites merge the first header across two columns because it looks tidy. Spreadsheets hate that. If you need those two columns later, a merge is a lie you have to undo.

I would rather the capture tool preserve the merge so I can see it, then split it in the editor, than have the clipboard invent a blank column I do not notice.

JavaScript tables and the false complete page

Infinite scroll is the classic trap. You copied twenty rows. There are four hundred. The page never told Excel that.

Tabs are the other trap. The visible tab is a table. The other tab is a different table that is still in the DOM, hidden. A sloppy selection picks up both and you get a sandwich.

I look at the row count on screen and the row count after capture. If they disagree by more than a header, I find out why before I save.

The local fix I trust

I want detection that understands HTML tables and the fakes (DIV grids, ARIA grids, iframes). I want a repair pass. I want an export that is a real file, not another paste.

Table Capture Chrome is the one I use when paste has already failed once. Capture the table or a range, read the score, fix headers and types in Table Studio, export XLSX or CSV. The work stays in the browser. A PDF URL is the only case where Chrome fetches a file you named.

That sequence is slower than Ctrl+C on a good day. It is faster than cleaning a bad paste on a normal day.

A paste post-mortem

I copied a public tariff table. On the page:

Band     p/kWh
0-2000   24.5
2001+    26.1

In Excel I got:

Band p/kWh 0-2000 24.5 2001+ 26.1

One row. The site had used CSS to fake columns inside a single cell-looking block. There was no <td> to copy.

The extractor treated it as a DIV grid and produced two columns. I still had to replace 24.5 as text because of the way the page wrapped the number. The type warning caught it. A paste would not have.

What I still paste

A two-by-two table on a documentation page. If it lands clean, fine.

A column of codes from a simple list that is not a table at all. I paste into a single column on purpose.

I do not paste from iframes, PDFs, or anything with a sticky header. Those are capture jobs.

After a good capture

I check three things, always.

Headers are in row 1 and they are unique. Duplicate Name headers make filters cruel.

The first numeric column sums to a number that is not zero. If it is zero, the column is text.

There is no totals row sitting in the data. If there is, I delete it or I move it.

Then I save. I do not “just paste into the live sheet” unless I like restoring from version history.

You are not fighting Excel

Excel is doing what Excel does with ambiguous clipboard HTML. The page is doing what pages do with CSS. The missing tool is the one that reads structure and lets you argue with it before the file exists.

Once I accepted that, I stopped reformatting the same column every Thursday. I either paste on a page that earned it, or I capture and repair. Those are the only two respectable options.

Hidden rows and the surprise extra data

Display:none does not mean “not on the clipboard”. I have pasted rows that were hidden behind a “show retired products” toggle I never opened. The DOM still had them. Excel received them. A filter in the workbook then looked wrong because the counts did not match the screen.

A capture list that shows row counts helps. If the page shows 24 rows and the capture shows 61, I ask which 37 I cannot see. Sometimes they are mobile-only nodes. Sometimes they are a second table the CSS stacked.

I would rather delete hidden rows in the editor than discover them in a chart.

Nested tables and the table-inside-a-cell

Legacy admin tools put a mini table in a cell: a list of tags, or a two-row price history. Copy-paste explodes that nest into extra rows. The next product starts in the middle of the previous product’s history.

I capture the outer table, then I look for cells that contain commas or slashes that used to be a nested grid. If I need the history, I capture it as its own range. If I do not, I flatten the cell to a single note.

Styles that travel and styles that should not

Paste often brings fill colours, bold headers, and a font the site uses for “brand”. Shared workbooks then look like a collage. I paste values only when I paste at all.

A dedicated export starts with fewer souvenirs. I still check that I did not export a column of icon fonts that render as empty boxes.

A checklist I run after any failed paste

  1. Was there a real <table>, or was it CSS?
  2. Did I copy a wrapper that included a sidebar?
  3. Is there an iframe?
  4. Are there merged headers?
  5. Did the row count match the screen?

If I fail two of those, I stop pasting. I capture. I repair. I export.

The junk in Excel is usually a faithful rendering of a messy translation. Change the translator. Do not spend another evening teaching Excel to read CSS.

Live Stream
SomaFM — Groove Salad