Always work on a copy, not the original Before opening, renaming, or editing anything: copy your file to a safe location (a separate folder, a USB drive, or cloud storage). If an edit goes wrong, the copy is your only way back. Never make changes to your only version of the file. As you make edits, save incremental copies of each XML file you change (sharedStrings-v1.xml, sharedStrings-v2.xml) so you can step back to any point.

The Full Directory Structure

When you rename an XLSX to .zip and open it, this is what you will find:

YourFile.xlsx (unzipped)
│
├── [Content_Types].xml          ← package manifest, lists every file
├── _rels/
│   └── .rels                    ← root entry point, points to workbook
│
├── docProps/
│   ├── app.xml                  ← application metadata
│   └── core.xml                 ← author, dates, revision number
│
└── xl/                          ← everything that matters lives here
    ├── _rels/
    │   └── workbook.xml.rels    ← maps sheet names to physical files
    ├── worksheets/
    │   ├── sheet1.xml           ← data for Sheet 1
    │   └── sheet2.xml           ← one file per sheet
    ├── workbook.xml             ← master index: sheet list, named ranges
    ├── sharedStrings.xml        ← lookup table for all text strings
    ├── styles.xml               ← all formatting definitions
    └── theme/
        └── theme1.xml           ← color scheme and fonts

Additional folders appear when your workbook contains charts (xl/charts/), images (xl/media/), or drawings (xl/drawings/).


File by File

[Content_Types].xml

What it does: Acts as a manifest. Lists every file inside the package and declares its content type so Excel knows how to handle it. If a file exists in the ZIP but is not registered here, Excel ignores it.

<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
  <Default Extension="rels"
    ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
  <Override PartName="/xl/workbook.xml"
    ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>
  <Override PartName="/xl/sharedStrings.xml"
    ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/>
  <!-- one Override entry per file in the package -->
</Types>

What breaks if corrupt: Excel cannot open the file at all. Usually the first thing damaged when a file is truncated during a save.


_rels/.rels

What it does: The root relationships file. Tells Excel where to find the main workbook document within the package.

<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
  <Relationship Id="rId1"
    Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
    Target="xl/workbook.xml"/>
</Relationships>

What breaks if corrupt: Excel cannot locate the workbook entry point and the file will not open.


xl/workbook.xml

What it does: The master index of your workbook. Contains the list of all sheets, their names and order, defined names (named ranges), and workbook-level settings like calculation mode.

<workbook>
  <bookViews>
    <workbookView activeTab="0"/>   <!-- which sheet tab is selected on open -->
  </bookViews>
  <sheets>
    <sheet name="Sales"   sheetId="1" r:id="rId1"/>
    <sheet name="Summary" sheetId="2" r:id="rId2"/>
  </sheets>
  <definedNames>
    <definedName name="TotalRevenue">Sales!$E$2:$E$9</definedName>
  </definedNames>
</workbook>

What breaks if corrupt: Sheets go missing from the tab bar, named ranges throw #REF! errors, or the file fails to open entirely. See Guide 4 for specific fixes.


xl/_rels/workbook.xml.rels

What it does: Maps each r:id value in workbook.xml to its actual file on disk. Without this, Excel cannot connect the sheet name "Sales" to xl/worksheets/sheet1.xml.

<Relationships>
  <Relationship Id="rId1" Type=".../worksheet"     Target="worksheets/sheet1.xml"/>
  <Relationship Id="rId2" Type=".../worksheet"     Target="worksheets/sheet2.xml"/>
  <Relationship Id="rId3" Type=".../sharedStrings" Target="sharedStrings.xml"/>
  <Relationship Id="rId4" Type=".../styles"        Target="styles.xml"/>
</Relationships>

What breaks if corrupt: Sheets appear blank or Excel reports missing parts. The r:id values here and in workbook.xml must match exactly — a mismatch is one of the most common manual-editing mistakes.


xl/worksheets/sheet1.xml

What it does: Contains the actual data for one worksheet — every row, every cell, every formula, merged cell ranges, conditional formatting, and print settings. One file per sheet.

<sheetData>
  <row r="1" spans="1:5">
    <c r="A1" t="s" s="1"><v>0</v></c>       <!-- t="s": value is sharedStrings index 0 -->
    <c r="C1"><v>12500</v></c>                <!-- no t: plain number -->
    <c r="D1"><f>C1*1.1</f><v>13750</v></c>  <!-- f: formula, v: last cached result -->
  </row>
</sheetData>

What breaks if corrupt: That sheet's data is lost or displays errors. See Guide 7 for specific fixes.


xl/sharedStrings.xml

What it does: A lookup table for all text strings in your workbook. Rather than storing the same text in every cell that contains it, Excel stores each unique string once here and has cells reference it by index number.

<sst count="22" uniqueCount="18">
  <si><t>Product</t></si>    <!-- index 0 -->
  <si><t>Region</t></si>     <!-- index 1 -->
  <si><t>Widget A</t></si>   <!-- index 2 -->
</sst>

When a cell says <c r="A1" t="s"><v>0</v></c>, it means: display the string at index 0, which is "Product."

What breaks if corrupt: Text cells show wrong values, show nothing, or show raw index numbers. See Guide 5 for specific fixes.


xl/styles.xml

What it does: Stores every formatting definition — fonts, fills, borders, and number formats. Cells do not store formatting directly; they store a style index (s="2") that points to a record in this file.

<styleSheet>
  <fonts count="2">
    <font><sz val="11"/><name val="Calibri"/></font>     <!-- index 0: default -->
    <font><b/><sz val="11"/><name val="Calibri"/></font> <!-- index 1: bold -->
  </fonts>
  <cellXfs count="2">
    <xf fontId="0" fillId="0" borderId="0"/>  <!-- style index 0: default -->
    <xf fontId="1" fillId="0" borderId="0"/>  <!-- style index 1: bold -->
  </cellXfs>
</styleSheet>

What breaks if corrupt: All formatting disappears, or Excel refuses to open the file. See Guide 6 for specific fixes.


xl/theme/theme1.xml

What it does: Stores the color scheme, fonts, and visual effects for the workbook theme — the palette visible in Excel's color picker.

What breaks if corrupt: Theme colors shift or reset to Office defaults. Rarely causes a file to fail to open.


docProps/core.xml

What it does: Document metadata — author, creation date, last modified date, revision number.

<cp:coreProperties>
  <dc:creator>Jane Smith</dc:creator>
  <cp:lastModifiedBy>Jane Smith</cp:lastModifiedBy>
  <cp:revision>14</cp:revision>
</cp:coreProperties>

What breaks if corrupt: Metadata is lost. The file still opens normally.


docProps/app.xml

What it does: Application metadata — which program created the file, sheet names listed in the document properties panel, count of hidden and visible sheets.

What breaks if corrupt: Application metadata is lost. The file still opens normally.


The Files Most Likely to Be Corrupted

File Risk Level Reason
sharedStrings.xml Highest Written last during save — a crash almost always hits this one
workbook.xml High Rewritten on every sheet rename, add, delete, or named range change
sheet1.xml High Data writes happen here continuously during editing
styles.xml Medium Index mismatches common in files generated by third-party tools

Guides 4 through 7 in this series cover each of these files in detail with downloadable corruption examples.