Merged cells and "Column 1" headers
Published by Quillfold, which makes TableHarvest.
The export has all the rows, but the columns are wrong. The usual symptoms:
- Headers come out as Column 1, Column 2, Column 3, or the header ends up as the first data row.
- A value that spans several rows on the page (a region, a date, a team) appears once, followed by blank cells.
- A header that spans two rows (“2024” over “Q1, Q2, Q3, Q4”) becomes two data rows, or the columns no longer line up with it.
- From some row on, values shift one column to the right.
All four come from how the table is written in the page’s HTML, not from how it looks.
How a web table is built
An HTML table is a list of rows (<tr>), each a list of cells. Header cells are supposed to be <th> and data cells <td>. Two attributes make cells span more than one slot:
colspan="4": this cell covers four columns.rowspan="3": this cell covers three rows. The next two rows simply have one cell fewer.
A page looks right because the browser lays the cells out on a grid. A tool that reads the rows one by one, without doing that layout, sees short rows and shifts the following cells to the left. Or it keeps the value once and leaves the other rows empty.
Symptom by symptom
“Column 1” headers
The tool didn’t recognise any header. Common reasons:
- The header row uses
<td>, not<th>, and is styled to look like a header. - The “table” is not a
<table>at all, but rows of<div>s styled as a grid; the header is just another row with a different class. - The header is in a separate element from the data, which sticky headers can be.
Check: right-click the header and choose Inspect. If you see <th>, the header is marked up; if you see <td> or <div>, the tool has to guess.
Blank cells under merged cells
The page used rowspan. On screen, “Kanto” covers seven prefectures; in the HTML it is in the first row only.
Two-row headers
The page used colspan in the first header row and a second header row under it. Unless the two rows are combined, you get either two header rows or a header that doesn’t line up.
Values shifted right or left
A cell that spans rows or columns was not expanded, so every following cell in those rows moved by one slot. Hidden cells can do the same: a cell with display:none takes no space on screen but is still in the HTML.
Fixing it by hand in Excel (Windows)
If the data is already in Excel, Power Query can repair the two most common problems:
- Use first row as headers. Microsoft Learn: “Power Query analyzes the contents of the file and if it identifies a different pattern for the first row, it tries to promote the first row of data to be the column headings” (“Promote or demote column headers”, updated 2024-08-29). You can also do it yourself from the Transform tab.
- Fill down. “The fill down operation takes a column and traverses through the values in it to fill any null values in the next rows until it finds a new value” (“Fill values in a column”, updated 2024-06-13). This repairs blanks left by
rowspan, as long as the blanks are empty (null) and not spaces.
Two-row headers have no one-click fix: combine the two header rows into one yourself, then promote it.
What other methods do (as of October 2026)
- Excel’s From Web and Google Sheets’ IMPORTHTML: neither Microsoft’s nor Google’s help pages describe how they treat
rowspan,colspanor multi-row headers. Check the result against the page. - Instant Data Scraper’s listing mentions “Extracted data column renaming and filtering” (read 2026-10-07); we did not find handling of merged cells or multi-row headers listed.
Side-by-side comparisons, with the cases where the other extension is the better choice: Instant Data Scraper or TableHarvest? and Table Capture or TableHarvest?
What TableHarvest does
TableHarvest is our extension. This is the current behaviour, covered by its automated tests (including sample pages modelled on a Wikipedia table with grouped headers, a government statistics table with a three-row header and a sports table with merged team cells):
- Merged cells are laid out as a grid.
rowspanandcolspanare expanded the way the browser lays them out, so every value lands in the column it appears under. By default a merged value is repeated in every row it covers, so each row stands on its own when you sort or filter in Excel. To keep it only in the first row, as on the page, turn the option off in the cleanup settings. - Multi-row headers become one row. The parts are joined top-down with ” / ”, for example
2024 / Q1 / Revenue; repeated and empty parts are dropped. - Headers in
<td>. When a table has no<th>, a first row of short, unique labels that is styled differently from the rows under it, or sits above a column of numbers, is used as the header. - Grids and lists. For ARIA grids, cells are placed by their column index, so grouped headers line up. For lists built from
<div>s, a header row is detected by its class, bold text or role; otherwise columns get names from attributes such asdata-label. - Hidden content. Columns hidden with
display:nonetake no slot, as on screen. Hidden rows are left out unless you include them. - Footer rows. A
<tfoot>that only repeats the header is dropped; a real total row is kept. - Your names. Rename, reorder and hide columns in the panel before exporting; the choices are remembered for the site.
All of this is on the free plan.
When you don’t need any of this
- The table has one header row of
<th>cells and no merged cells: copy and paste, or Excel’s From Web, will be fine. - The data is already in Excel and only has blanks under merged cells: Fill down in Power Query fixes it in a few clicks.
Sources
Read on 7 October 2026.
- Microsoft Learn, “Promote or demote column headers” (updated 2024-08-29): https://learn.microsoft.com/en-us/power-query/table-promote-demote-headers
- Microsoft Learn, “Fill values in a column” (updated 2024-06-13): https://learn.microsoft.com/en-us/power-query/fill-values-column
- Google Docs Editors Help, “IMPORTHTML”: https://support.google.com/docs/answer/3093339
- Chrome Web Store, Instant Data Scraper: https://chromewebstore.google.com/detail/instant-data-scraper/ofaokhiedipichpaobibbnahnkdoiiah