Identify What Is Missing
Use the safe ZIP workflow and compare the package contents with the XLSX file anatomy guide. Check Excel's repair log for the exact part path: similarly named files are not interchangeable.
Before concluding that a part is lost, rule out three look-alikes. The part may exist under a different capitalisation (ZIP paths are case-sensitive), or with backslashes in its name, or the whole package may be wrapped in an extra top-level folder after a careless re-zip, which moves [Content_Types].xml away from the root. Fix those first; they are not missing parts.
What a Healthy Package Looks Like
The clean reference workbook contains these parts. Every one of them is declared in [Content_Types].xml, and every one except the manifest itself is reached through a relationship:
[Content_Types].xml <- manifest, must be at the ZIP root
_rels/
.rels <- points to workbook.xml and docProps
docProps/
core.xml
app.xml
xl/
workbook.xml <- lists the sheets
styles.xml
sharedStrings.xml
calcChain.xml <- optional, Excel can rebuild it
_rels/
workbook.xml.rels <- maps r:id values to the parts below
theme/
theme1.xml
worksheets/
sheet1.xml
sheet2.xml
Three references normally agree about every worksheet. Here they agree that the sheet named Sheet1 lives at xl/worksheets/sheet1.xml:
<!-- xl/workbook.xml -->
<sheet name="Sheet1" sheetId="1" r:id="rId1"/>
<!-- xl/_rels/workbook.xml.rels -->
<Relationship Id="rId1"
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet"
Target="worksheets/sheet1.xml"/>
<!-- [Content_Types].xml -->
<Override PartName="/xl/worksheets/sheet1.xml"
ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>
A Worksheet Part Is Truly Absent
The workbook, the relationship, and the manifest all describe a sheet, but the file itself is not in the ZIP. Those references do not recreate it, and the worksheet is where your cell values and formulas live.
xl/worksheets/
sheet2.xml
<- CORRUPT: sheet1.xml is not in the archive
<!-- Still present, and still pointing at it: -->
<sheet name="Sheet1" sheetId="1" r:id="rId1"/>
<Relationship Id="rId1" Type=".../relationships/worksheet" Target="worksheets/sheet1.xml"/>
<Override PartName="/xl/worksheets/sheet1.xml" ContentType="...spreadsheetml.worksheet+xml"/>
Fix: Restore that exact worksheet from a matching backup or version-history copy of the same workbook, then verify its formulas and its shared-string and style references. Reusing a worksheet from a different workbook can mismatch sheet IDs, names, styles, and shared-string indexes.
Last resort: If no backup exists, you can remove the dead references so the rest of the workbook opens. This permanently gives up that sheet's data. Removing a sheet has knock-on effects in this workbook, so work through all of them:
- In
workbook.xml, delete the<sheet>entry. BecauseactiveTab="1"would now point past the only remaining sheet, set it to"0". - In
workbook.xml.rels, delete therId1relationship, and in[Content_Types].xmldelete the/xl/worksheets/sheet1.xmloverride. - In
calcChain.xml, the entry<c r="A11" i="1" l="1"/>refers to the removed sheet. Delete the chain, its relationship, and its override; see Fix calcChain.xml. - In
docProps/app.xml, update the sheet count and the sheet names so they match the workbook.
sharedStrings.xml Is Missing
Text cells do not store their text. They store a number that points into the shared strings table. Without that table the worksheets still load, but every text cell has lost its text.
<!-- sheet1.xml: cell F3 asks for string number 0 -->
<c r="F3" t="s"><v>0</v></c>
<!-- sheet2.xml: cell E3 asks for string number 0 -->
<c r="E3" t="s"><v>0</v></c>
<!-- xl/sharedStrings.xml -->
<- CORRUPT: part is not in the archive, so "ABC" is gone
Fix: Restore xl/sharedStrings.xml from a backup. The strings cannot be reconstructed from the other parts. If a backup is impossible, you can convert each affected cell to an inline string, but only for text you know from another source. Then remove the shared strings relationship and override so nothing points at the missing file. See Fix sharedStrings.xml for repairing a table that is present but damaged.
<!-- Fixed (only if you know the cell text): inline string instead of a shared string -->
<c r="F3" t="inlineStr"><is><t>ABC</t></is></c>
styles.xml Is Missing
styles.xml defines every font, fill, border, and number format in the workbook, and each cell's s attribute points into it. Excel treats the style sheet as essential.
xl/
worksheets/
theme/
sharedStrings.xml
<- CORRUPT: styles.xml is not in the archive
Fix: Restore it from a backup of the same workbook so cell formatting is preserved. If none exists, the workbook can be made to open by supplying a minimal style sheet that defines just the default font, fills, borders, and cell format. All custom formatting is lost, and any cell whose s attribute refers to a style that no longer exists will need that attribute removed. The minimal style sheet from the clean reference workbook is:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<fonts count="1">
<font><sz val="11"/><color theme="1"/><name val="Aptos Narrow"/><family val="2"/><scheme val="minor"/></font>
</fonts>
<fills count="2">
<fill><patternFill patternType="none"/></fill>
<fill><patternFill patternType="gray125"/></fill>
</fills>
<borders count="1">
<border><left/><right/><top/><bottom/><diagonal/></border>
</borders>
<cellStyleXfs count="1">
<xf numFmtId="0" fontId="0" fillId="0" borderId="0"/>
</cellStyleXfs>
<cellXfs count="1">
<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>
</cellXfs>
<cellStyles count="1">
<cellStyle name="Normal" xfId="0" builtinId="0"/>
</cellStyles>
</styleSheet>
Save it as xl/styles.xml and keep the existing relationship and override as they are. See Fix styles.xml for damage inside a style sheet that is present.
Regenerable Parts: Theme and Document Properties
Some parts describe appearance and metadata rather than your data. The theme (xl/theme/theme1.xml) sets default colors and fonts. The document properties (docProps/core.xml and docProps/app.xml) hold the author, timestamps, and application details. None of them contain cell values or formulas. The trouble starts when the part is gone but a relationship or manifest entry still points at it.
<!-- Archive no longer contains docProps/app.xml -->
<!-- _rels/.rels -->
<Relationship Id="rId3"
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"
Target="docProps/app.xml"/>
<!-- ↑ CORRUPT: target part does not exist -->
<!-- [Content_Types].xml -->
<Override PartName="/docProps/app.xml" ContentType="...extended-properties+xml"/>
Fix: Restore the part from a backup if you have one. If not, recreate it. The theme is covered in Repair theme1.xml: copy theme1.xml from a clean workbook and expect the appearance to revert to the default Office theme. For document properties, the healthy files in Repair docProps show the structure; fill in real values and do not invent a historical timestamp. Alternatively, for a part you do not need, remove both the relationship and the matching manifest override so nothing points at the missing file.
<!-- Fixed (removal option): relationship deleted from _rels/.rels -->
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId2" Type=".../metadata/core-properties" Target="docProps/core.xml"/>
<Relationship Id="rId1" Type=".../relationships/officeDocument" Target="xl/workbook.xml"/>
</Relationships>
<!-- [Content_Types].xml: the /docProps/app.xml Override is removed as well -->
Relationship Files Are Missing
_rels/.rels and xl/_rels/workbook.xml.rels contain no data of their own, but the package cannot be navigated without them. Without the first, Excel cannot find the workbook. Without the second, it cannot find the worksheets or supporting parts.
_rels/
<- CORRUPT: .rels is not in this folder
xl/
_rels/
<- CORRUPT: workbook.xml.rels is not in this folder
workbook.xml
Fix: Because every target follows a fixed convention, these files can be rebuilt without a backup. The full method, including which IDs must match workbook.xml, is in Repair XLSX Relationships under *A .rels File Is Missing Entirely*.
[Content_Types].xml Is Missing
Without the manifest, Excel cannot identify the type of any part, so the package will not open even though every other file is intact.
Corrupted.xlsx
_rels/
docProps/
xl/
<- CORRUPT: [Content_Types].xml is not at the root
Fix: First confirm it has not just been pushed into a wrapper folder. If it is truly absent, rebuild it with one Default pair and one Override per part. The complete method is in [Fix [Content_Types].xml](/guides/fix-content-types-xml.html) under *[Content_Types].xml Missing Entirely*.
Verify the Repair
- Check that every workbook sheet entry has a valid relationship.
- Check that each internal relationship target exists in the ZIP.
- Check that every part has a content type declaration.
- Rebuild the ZIP with the correct root structure and open the copy in Excel.
- Review formulas and sheet content. A successful open does not prove all data was recovered.
Checklist: How to Check for Missing Parts in Your File
- Rename your XLSX to .zip and list its contents
- Note the exact missing path from Excel's message or repair log
- Confirm
[Content_Types].xmlis at the ZIP root, not inside a wrapper folder - Compare every
Targetin both.relsfiles with the real entries in the archive, including capitalisation - Decide whether the missing part holds data (worksheet, shared strings), is needed to read the file (styles, relationships, manifest), or is regenerable (theme, document properties, calcChain)
- Search backups, cloud version history, and AutoRecover files for the missing part
- After repair, verify recovered data in Excel rather than trusting that the file merely opened