# Excel “Save as Web Page” Breaks When You Send It — the _files Folder

Canonical: https://commareports.com/fix/excel-save-as-web-page-broken
Published: 2026-10-05

> You saved an Excel workbook as a web page, sent the .htm, and it opens blank, unstyled or without its other sheets. Why Excel splits the page into a folder, and three ways to get one file that works.

# Excel's “Save as Web Page” breaks when you send it

You saved the workbook as a web page so people without Excel could read
it, attached the `.htm`, and the reply came back: _"it's blank"_ — or
_"there's only one sheet"_, or _"it looks like a 1998 website"_.

The file isn't corrupt. Excel never made one file.

## What Excel actually writes

Save a workbook as **Web Page (\*.htm; \*.html)** and you usually get two
things next to each other:

```text
Q3 forecast.htm
Q3 forecast_files/
  sheet001.htm
  sheet002.htm
  tabstrip.htm
  stylesheet.css
  filelist.xml
  image001.png
```

`Q3 forecast.htm` is a thin wrapper. For a multi-sheet workbook it is a
frameset that loads each sheet and the tab strip from the `_files`
folder; even a single sheet usually pulls its stylesheet, images and
charts from there. Exactly what lands in the folder depends on the Excel
version and what the workbook contains, but the shape is always the same:
**the page you see is assembled from files the `.htm` only points at.**

## Why it breaks in transit

Every reference into `_files/` is relative. On your machine the folder
sits next to the `.htm`, so it works. Once the `.htm` travels alone:

- **Blank page or empty frame** — the frameset loads, the sheet files
  don't exist on the recipient's machine.
- **Only one sheet, no tabs** — the tab strip lives in the folder too.
- **No colours, borders or fonts** — `stylesheet.css` is missing.
- **Broken image icons where the charts were** — chart images are PNGs in
  the folder.

Renaming the `.htm` breaks it the same way on your own machine, because
the folder name is baked into every path.

## Fix 1: send the folder too (fragile)

Zip the `.htm` and the `_files` folder together, unchanged. It works if
the recipient extracts the zip and opens the `.htm` from the extracted
folder. It fails if they preview the file from inside the archive, open
it on a phone, or the mail gateway strips the zip. This is the same
trap as [images not showing in a sent HTML file](/fix/html-images-not-showing).

## Fix 2: Single File Web Page (.mht) (unreliable)

Excel's **Single File Web Page (\*.mht; \*.mhtml)** packs everything into
one file. That solves the folder problem and replaces it with a support
problem: MHTML is opened by some desktop browsers and simply downloaded by
others, mail clients rarely preview it, and phones mostly don't render it
at all. Fine for archiving; poor for sending.

## Fix 3: convert the sheet to a plain HTML table

A plain `<table>` has nothing external to lose. The
**[Excel to HTML table converter](/tools/excel-to-html-table)** reads the
`.xlsx` in your browser — nothing uploads — and produces a clean,
styled table:

- values exactly as Excel displays them (currency, percentages, dates),
  formulas as their last calculated result;
- one sheet, or **every sheet on one page** with a heading each;
- a downloadable `.html` with the styles inline, or Markdown for a
  ticket.

What you give up: cell colours, conditional formatting and charts. If
those are the point, export the sheet to PDF from Excel, or rebuild the
chart in the HTML report itself.

## Better than a file: a link

Even a perfect single `.html` is still an attachment — Outlook may
[block it](/fix/outlook-blocked-html-attachment), and Slack
[won't preview it](/fix/slack-wont-preview-html-file). From the
converter, **Get a shareable link** publishes the table to Comma
instead: one URL that opens in any browser, on a phone too, with no
Excel installed. Readers [comment on the exact row](/comment-on-html)
rather than replying "row 14 looks off", and publishing again next week
keeps last week's version as a revision.

## Try it

**[Convert an Excel sheet to HTML →](/tools/excel-to-html-table)**

### Related

- [Excel to HTML table](/tools/excel-to-html-table) — workbook in, clean table out
- [CSV to HTML table](/tools/csv-to-html-table) — for exports and pasted ranges
- [HTML inliner](/tools/html-inliner) — fold a page's CSS and images into one file
- [The HTML file is too big to email](/fix/html-file-too-big-to-email)
- [The HTML file shows code instead of the page](/fix/html-file-shows-code-instead-of-page)
