ExcelAnalyzerClient-side file inspector

Why is my Excel file so large?

An Excel file is large when the ZIP package is large, not when the grid looks busy. Pictures, pivot caches, shared strings, styles, and a used range that still covers empty rows are the usual weight. The size is the compressed package you send by email. The fix starts by naming the heavy part, then removing that part in Excel, not by compressing the xlsx again with another zipper.

A workbook is a ZIP archive

Rename a copy of the file from .xlsx to .zip and you can open it. Inside, xl/workbook.xml lists the sheets, xl/worksheets holds each sheet, xl/sharedStrings.xml holds text, xl/styles.xml holds formatting, and xl/media holds images. Excel compresses those parts. The size in Explorer is the compressed total. A part that is full of repeated XML shrinks a lot. A PNG or a pivot cache of real numbers does not. That is why two files with the same number of formulas can differ by an order of magnitude.

Images are often the whole file

Pictures pasted into a sheet are stored under xl/media, frequently at the resolution they had when pasted. Cropping on the sheet does not crop the stored file. A screenshot pasted ten times can be ten copies. The size checker’s largest row will name the image if this is your case. In Excel, delete the picture you do not need, or replace it with a compressed copy, then save and measure again. Compressing pictures from the Picture Format tab is Excel’s own tool for this. Do it on a copy if the original artwork has to stay somewhere.

Pivot caches copy the source data

A pivot that looks like a small summary can sit on a cache of every source row. The records part is that copy. It exists so the pivot can be rearranged offline. If the cache is most of the file, deleting unused columns on the visible sheet will disappoint you. Clear the old pivot, turn off saving the source data with the file when the source will still be available, or point the pivot at a smaller staging range. Measure again. The cache checker reads the flags. This guide is the decision about whether those bytes belong in the workbook at all.

Text, styles, and the phantom grid

Shared strings are a good idea that turns sour when nearly every string is unique. A dump of transaction notes, error messages, or GUIDs will do that. Styles swell when a workbook has been copied between files for years and still carries unused cell styles, and when conditional formatting has been applied cell by cell. The used range is a different kind of weight: the sheet’s dimension says the data goes to row 1048576 even though the last value is on row 200. Excel then keeps a huge rectangle in play. None of these show up if you only look at the status bar’s cell count.

When you want the numbers from your own workbook, run a private size breakdown.

.xlsb is smaller for a reason, and it is not magic

.xlsb stores the same workbook as binary BIFF12 parts. It is often smaller and faster to open than the XML equivalent, and it can contain macros. It is not a cleanup. A bloated cache inside an .xlsb is still a bloated cache. This site’s size ranking still works on .xlsb because the ZIP directory is visible. Formula-level checks do not, until you save a copy as .xlsx. Legacy .xls is a different format entirely. Saving it as .xlsx is a conversion, not a repair, and it is the point where these checks can see inside.

A sensible order of work

Measure first. If one image dominates, deal with images and stop. If the pivot cache dominates, deal with the cache. If worksheets dominate and the used-range check shows a phantom dimension, delete the empty rows and columns and save. If styles or conditional formatting dominate, consolidate rules before you touch formulas. If shared strings dominate, you have a text problem: values pasted as text, or columns that do not belong in the workbook. Re-measure after each change so you know which change mattered. Stacking five cleanups at once makes the next regression impossible to explain.

What not to do

Do not unzip the package, delete a part, and rezip it with Windows. Content types and relationships will not match, and Excel will offer to repair the file by throwing more away. Do not upload the workbook to a random compressor site to “make it smaller”. The file contains the business data. Do not keep the only copy on a network drive that sync tools are also rewriting. Save a new name, confirm Excel opens it, then run the size check on the new file.

Read the top two rows before you edit

Picture a workbook whose size table puts a PNG first and a pivot cache second, with the worksheets far behind. The useful sentence is “this file is a picture plus a cache.” Replacing the picture with a smaller export removes the first row. The cache stays only if the recipient must pivot without the source. No formula needs rewriting. The opposite shape is a worksheet part that dwarfs everything else. Then the used-range check and the shared-string size matter, and pictures do not. A third shape is a heavy styles part beside a long list of formatting rules. That file may not even look huge, and the formatting checker is the next page. Name the shape from the table in one sentence. If you cannot, you are not ready to delete anything. This is an illustration of how to read a report, not a claim about how often each shape appears in the wild.

After you know the heavy part

Write the largest part’s name and its share of the package into the note you keep with the file. That sentence is the brief for whoever edits the workbook next. If the largest part is a picture, the brief is about the picture. If it is a cache, the brief is about whether the source data has to travel. If it is a worksheet, the brief is about the used range and the text. Do not send a second email that only says the file is smaller. Say which row of the size table disappeared, and leave the original file untouched until the smaller copy opens and the remaining parts still match the report you expected.

Related reading

The closest repair notes are Phantom rows and the last cell and Reduce the file after you measure it .

Walk the same checks in order with the Workbook audit checklist.

The terms behind this guide are Shared strings and BIFF12 .

The paired check for that note is the Excel used range checker.

Questions people ask before trusting the result

Is 10 MB large?

It is large enough to look at if the workbook is a report rather than a data extract. The Audit score starts a size deduction at 5 MB and steps it up at 10, 25, and 50. The part list matters more than the round number.

Will Save As .xlsb fix bloat?

It often shrinks the package and it keeps the cache, the pictures, and the phantom range. Use it for speed after the heavy part is actually gone, or when you knowingly want the binary form.

Why did deleting rows not shrink the file?

Excel may not shrink a package until you save, close, and reopen, and only if the dimension moved. Check Ctrl+End. If it still jumps far away, the rows were cleared rather than deleted, or an object still anchors the old range.

Can I see this without Excel installed?

Yes. The size checker reads the package in the browser. You still need Excel, or another spreadsheet that writes xlsx, to remove the heavy part.

Does a large file mean it is corrupt?

No. Corruption is a broken package. A large file can be perfectly well formed. Run the corruption check only when Excel complains, or when the size check cannot open the ZIP.