How to fix a corrupted Excel file and XML errors
“Excel found unreadable content” means the package is damaged or internally inconsistent. The corruption checker names the part: a truncated ZIP, a missing sheet, XML that is not well formed, or an encrypted package. Let Excel repair a copy only after you know which part failed, and never overwrite the only file you have.
Three different failures
A truncated file does not have a valid ZIP ending. A download stopped, a sync conflict kept a partial write, or a mail gateway cut the attachment. No XML repair will invent the missing bytes. Get another copy. A missing part is a ZIP that opens, while workbook.xml still points at xl/worksheets/sheet3.xml and that file is not there. Excel’s repair drops the missing sheet. A malformed part is present and unreadable: a tag is unclosed, or the XML is cut off in the middle. Excel may repair that part or may remove it. Encryption is a fourth case. An encrypted package is not corrupt in the casual sense. It is unreadable without the password, and this site will not ask for the password or try to defeat it.
Read the part name before you click Repair
Run the checker and write down the part and the sentence next to it. If the sentence says the file is not a ZIP, stop and replace the file. If it names a missing sheet, look at an older copy for that sheet’s name before you accept a repaired workbook that no longer has it. If it names a single XML part, Excel’s repair is more likely to be enough. Save the repaired workbook under a new name when Excel offers. Open the repaired file and run the checker again. A clean integrity result means the package structure is whole. It does not mean every number survived. Compare totals, pivots, and sheet names with what you remember or with the older copy.
What Excel’s repair tends to remove
Repair keeps what it understands and discards what it does not. People lose charts, pivot caches, custom XML, and sometimes a sheet. The file then opens and looks “fixed” while a report page is gone. That is why the part name matters. If the broken part is a chart sheet you can rebuild, repair is cheap. If the broken part is the only worksheet with the source data, repair is how you lose it. In that case, spend the time on another copy of the file, not on the repaired remnant.
Hand-editing XML
Unzipping and fixing a tag is possible when you already know the part is almost valid and you have a backup. It is also how a small mistake becomes a file Excel refuses entirely. Most people should not do it. If you do, change one thing, rezip with a tool that writes a normal ZIP, keep the .xlsx extension, and run this checker before you trust Excel’s subsequent save. Do not delete relationships you do not understand. A workbook is consistent only when content types, relationships, and parts agree.
When you want the numbers from your own workbook, test the package on this device.
After the package is in order
Run the other checks. A repaired file often still has #REF! where a removed sheet was used, a phantom used range, or a pivot that needs a refresh because its cache was dropped. Those are ordinary checks again. The corruption guide is finished when the checker reports no missing parts and well-formed XML. If the same file breaks again on the next save, a sync tool or an add-in is rewriting it. Save locally, confirm the checker is clean, and then put the file back in the shared location. A file that cannot survive one save is still broken, even if it opened once.
What this will not recover
This site does not reconstruct deleted sheets from a partial ZIP, does not decrypt workbooks, and does not convert legacy .xls. An .xls file that Excel calls corrupt is a job for Excel’s older repair, or for a copy from the person who still has the original. Renaming .xls to .xlsx does not make it a modern package. The checker will refuse that file and say so, which is more useful than a stack trace from a ZIP parser.
A recovery order
Make a copy of the damaged file before Excel touches it, even if Excel is eager to repair on open. Run the checker on that copy and keep the part name. If the checker says the ZIP is truncated, do not repair. Fetch a new copy. If a sheet part is missing, open an older version beside it and copy the missing sheet’s contents across only if the older version is the same report. If one XML part is malformed and it is not the only copy of the source data, allow Excel to repair to a new file name, then run the checker on the result. If the result is clean and a chart or a pivot is gone, rebuild the chart. If the source sheet is gone, the repaired file is a clue, not a recovery. Go back to the older version.
Stop the next truncation
Files that corrupt every week are usually being saved by two things at once: Excel and a sync client, or Excel and a macro that writes the package badly. Save to a local disk, close Excel, run the checker, and only then let sync upload the clean file. Disable the macro until you know it is not the writer of the bad part. A workbook that is clean on local disk and broken in the synced folder is a sync problem. Treating it as a mysterious Excel disease will waste the next repair on the same truncated upload. Keep one local file that the checker accepts, and treat every other copy as untrusted until it matches that file’s sheet list and size. If a repaired file is missing a sheet the local original had, the repair removed it. Do not keep “repairing” that copy hoping the sheet will return. It will not. Go back to a version that still has the sheet. After a clean local save, run the checker once more and keep that result with the file so the next truncated upload is obvious by comparison.
Related reading
The closest repair notes are Fix stored formula errors and Why the file got large .
Walk the same checks in order with the Workbook audit checklist.
The terms behind this guide are Open XML package and BIFF12 .
The paired check for that note is the Find #REF! errors in a workbook.
Questions people ask before trusting the result
Excel repaired the file and the checker is clean. Am I done?
The package is whole. Confirm the business content. Look for missing sheets, pivots that refresh to nothing, and #REF! where a part was removed.
Should I send the broken file to someone to fix?
Only to someone who should already see that data. The checker works locally so you do not have to upload it to find out which part failed.
Why did a file that opens still get a warning?
Excel opens some defects and repairs them on the next save. The warning names the defect first, so the save is not a surprise.
Can two people saving to a synced folder cause this?
Yes. Overlapping saves can leave a partial package. Keep a local copy that the checker accepts, and treat the synced copy as suspect until it matches.
Does a macro repair corruption?
A macro cannot rebuild a truncated ZIP. It can create corruption of its own by writing a bad part. Fix the package first, with macros disabled.