🔬 DOCX文件结构详解

深入解析DOCX文件的每个组成部分和XML结构

完整文件结构

📦

document.docx

ZIP压缩包

📋

[Content_Types].xml

内容类型定义

📁

_rels/

关系目录

📄 .rels
📁

word/

文档内容目录

📄 document.xml
📄 styles.xml
📄 settings.xml
📄 webSettings.xml
📄 fontTable.xml
📄 numbering.xml
📄 header1.xml
📄 footer1.xml
📁 _rels/
📁 media/
📁 theme/
📁

docProps/

文档属性

📄 core.xml
📄 app.xml

详细解析

📋

[Content_Types].xml

必需

内容类型定义文件,描述ZIP包中每个部分的内容类型。这是DOCX文件中最顶层的重要文件,告诉应用程序如何处理包中的每个文件。

主要元素

  • <Default> - 定义默认的内容类型映射(基于文件扩展名)
  • <Override> - 覆盖特定路径的内容类型
完整示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
  <!-- 默认内容类型 -->
  <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
  <Default Extension="xml" ContentType="application/xml"/>
  <Default Extension="png" ContentType="image/png"/>
  <Default Extension="jpeg" ContentType="image/jpeg"/>
  <Default Extension="gif" ContentType="image/gif"/>
  
  <!-- 覆盖内容类型 -->
  <Override PartName="/word/document.xml" 
            ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>
  <Override PartName="/word/styles.xml" 
            ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/>
  <Override PartName="/word/settings.xml" 
            ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"/>
  <Override PartName="/docProps/core.xml" 
            ContentType="application/vnd.openxmlformats-package.core-properties+xml"/>
  <Override PartName="/docProps/app.xml" 
            ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/>
</Types>
🔗

_rels/

必需

关系目录,存储包级别的关系定义。包含一个 .rels 文件,定义了包内部各部分之间的关系。

主要文件

  • .rels - 包级别的关系文件
.rels 文件示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
  <!-- 主文档关系 -->
  <Relationship Id="rId1" 
                Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" 
                Target="word/document.xml"/>
  
  <!-- 文档属性关系 -->
  <Relationship Id="rId2" 
                Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" 
                Target="docProps/core.xml"/>
  
  <Relationship Id="rId3" 
                Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" 
                Target="docProps/app.xml"/>
</Relationships>
📄

word/document.xml

核心

文档的主要内容文件,包含所有可见的文档内容:文本、段落、表格、图片、形状等。这是DOCX文件中最核心的XML文件。

主要元素结构

<w:document> 文档根元素
<w:body> 文档主体内容
<w:p> 段落
<w:r> 文本运行
<w:t> 文本内容
<w:tbl> 表格
完整文档示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:body>
    <!-- 标题段落 -->
    <w:p>
      <w:pPr>
        <w:pStyle w:val="Heading1"/>
        <w:spacing w:before="240" w:after="120"/>
      </w:pPr>
      <w:r>
        <w:rPr>
          <w:b/>
          <w:sz w:val="32"/>
        </w:rPr>
        <w:t>欢迎使用DOCX文件格式</w:t>
      </w:r>
    </w:p>
    
    <!-- 普通段落 -->
    <w:p>
      <w:pPr>
        <w:spacing w:after="120"/>
      </w:pPr>
      <w:r>
        <w:rPr>
          <w:sz w:val="24"/>
        </w:rPr>
        <w:t>这是一个标准的段落文本。DOCX格式基于XML,可以方便地进行程序化处理。</w:t>
      </w:r>
    </w:p>
    
    <!-- 包含格式的段落 -->
    <w:p>
      <w:pPr>
        <w:ind w:firstLine="420"/>  <!-- 首行缩进 -->
      </w:pPr>
      <w:r>
        <w:rPr>
          <w:b/>           <!-- 加粗 -->
          <w:color w:val="FF0000"/>  <!-- 红色 -->
          <w:sz w:val="28"/>
        </w:rPr>
        <w:t>这段文字应用了格式:加粗、红色、字号14pt。</w:t>
      </w:r>
    </w:p>
    
    <!-- 表格示例 -->
    <w:tbl>
      <w:tblPr>
        <w:tblW w:w="0" w:type="auto"/>
        <w:tblBorders>
          <w:top w:val="single" w:sz="4"/>
          <w:left w:val="single" w:sz="4"/>
          <w:bottom w:val="single" w:sz="4"/>
          <w:right w:val="single" w:sz="4"/>
        </w:tblBorders>
      </w:tblPr>
      <w:tr>
        <w:tc>
          <w:p><w:r><w:t>姓名</w:t></w:r></w:p>
        </w:tc>
        <w:tc>
          <w:p><w:r><w:t>年龄</w:t></w:r></w:p>
        </w:tc>
      </w:tr>
      <w:tr>
        <w:tc>
          <w:p><w:r><w:t>张三</w:t></w:r></w:p>
        </w:tc>
        <w:tc>
          <w:p><w:r><w:t>25</w:t></w:r></w:p>
        </w:tc>
      </w:tr>
    </w:tbl>
  </w:body>
</w:document>
🎨

word/styles.xml

重要

样式定义文件,定义文档中使用的所有样式。包括段落样式、字符样式、表格样式、列表样式等。

样式类型

  • paragraph - 段落样式
  • character - 字符样式
  • table - 表格样式
  • numbering - 编号样式
样式定义示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <!-- 默认样式 -->
  <w:docDefaults>
    <w:rPrDefault>
      <w:rPr>
        <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri" w:eastAsia="宋体"/>
        <w:sz w:val="24"/>  <!-- 12pt -->
        <w:color w:val="000000"/>
      </w:rPr>
    </w:rPrDefault>
    <w:pPrDefault>
      <w:pPr>
        <w:spacing w:after="120"/>
      </w:pPr>
    </w:pPrDefault>
  </w:docDefaults>
  
  <!-- 标题1样式 -->
  <w:style w:type="paragraph" w:styleId="Heading1">
    <w:name w:val="heading 1"/>
    <w:basedOn w:val="Normal"/>
    <w:next w:val="Normal"/>
    <w:linked w:val="Heading1Char"/>
    <w:uiPriority w:val="9"/>
    <w:qFormat/>
    <w:rPr>
      <w:b/>
      <w:sz w:val="32"/>  <!-- 16pt -->
      <w:color w:val="2E74B5"/>
    </w:rPr>
    <w:pPr>
      <w:spacing w:before="240" w:after="120"/>
      <w:outlineLvl w:val="0"/>
    </w:pPr>
  </w:style>
  
  <!-- 标题2样式 -->
  <w:style w:type="paragraph" w:styleId="Heading2">
    <w:name w:val="heading 2"/>
    <w:basedOn w:val="Normal"/>
    <w:next w:val="Normal"/>
    <w:linked w:val="Heading2Char"/>
    <w:uiPriority w:val="9"/>
    <w:unhideWhenUsed/>
    <w:qFormat/>
    <w:rPr>
      <w:b/>
      <w:sz w:val="28"/>  <!-- 14pt -->
      <w:color w:val="2E74B5"/>
    </w:rPr>
    <w:pPr>
      <w:spacing w:before="200" w:after="120"/>
      <w:outlineLvl w:val="1"/>
    </w:pPr>
  </w:style>
  
  <!-- 引用样式 -->
  <w:style w:type="paragraph" w:styleId="Quote">
    <w:name w:val="Quote"/>
    <w:basedOn w:val="Normal"/>
    <w:rPr>
      <w:color w:val="595959"/>
      <w:sz w:val="22"/>  <!-- 11pt -->
      <w:i/>  <!-- 斜体 -->
    </w:rPr>
    <w:pPr>
      <w:ind w:left="720" w:right="720"/>
      <w:spacing w:before="120" w:after="120"/>
    </w:pPr>
  </w:style>
</w:styles>
📊

docProps/

元数据

文档属性目录,包含文档的元数据信息,如作者、标题、创建时间、修改时间等。

主要文件

  • core.xml - 核心属性(作者、标题、创建时间等)
  • app.xml - 应用属性(页数、字数、版本等)
core.xml 示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" 
                    xmlns:dc="http://purl.org/dc/elements/1.1/" 
                    xmlns:dcterms="http://purl.org/dc/terms/" 
                    xmlns:dcmitype="http://purl.org/dc/dcmitype/" 
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <dc:title>DOCX文件结构详解</dc:title>
  <dc:subject>Microsoft Office Open XML格式</dc:subject>
  <dc:creator>技术文档编写者</dc:creator>
  <cp:keywords>DOCX, XML, Office, Open XML</cp:keywords>
  <dc:description>详细介绍DOCX文件的内部结构和组成</dc:description>
  <dcterms:created xsi:type="dcterms:W3CDTF">2026-01-29T00:00:00Z</dcterms:created>
  <dcterms:modified xsi:type="dcterms:W3CDTF">2026-01-29T00:00:00Z</dcterms:modified>
</cp:coreProperties>
app.xml 示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" 
           xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
  <Template>Normal.dotm</Template>
  <TotalTime>30</TotalTime>
  <Pages>5</Pages>
  <Words>1200</Words>
  <Characters>6800</Characters>
  <Application>Microsoft Office Word</Application>
  <DocSecurity>0</DocSecurity>
  <Lines>56</Lines>
  <Paragraphs>16</Paragraphs>
  <ScaleCrop>false</ScaleCrop>
  <Company>技术文档中心</Company>
  <LinksUpToDate>false</LinksUpToDate>
  <CharactersWithSpaces>7950</CharactersWithSpaces>
  <SharedDoc>false</SharedDoc>
  <HyperlinksChanged>false</HyperlinksChanged>
  <AppVersion>16.0000</AppVersion>
</Properties>