Package Structure

A SpreadsheetML package shall contain a package-relationship item and a content-type item. The package-relationship item shall contain implicit relationships with targets of the following type:

The package-relationship item is permitted to contain implicit relationships with targets of the following type:

  • Digital Signature Origin (§15.2.6)

  • File Property parts (§15.2.11) (Application-Defined File Properties, Core File Properties, and Custom File Properties), as appropriate.

  • Thumbnail (§15.2.14).

The required and optional relationships between parts are defined in §12.3 and its subordinate clauses.

example:

First, the content types for relationship parts, the Workbook part, and at least one Sheet part must be defined (physically located at /[Content_Types].xml in the package):

<Types xmlns="…">
  <Default Extension="rels"       
   ContentType="application/vnd.openxmlformats-package.relationships+xml" 
   /> 
  <Override PartName="/workbook.xml"   
   ContentType="application/vnd.openxmlformats-officedocument.
   spreadsheetml.sheet.main+xml" /> 
  <Override PartName="/sheet1.xml" 
   ContentType="application/vnd.openxmlformats-
   officedocument.spreadsheetml.worksheet+xml" />
</Types>

Next, the required package-level relationship to the Workbook part must be defined (physically located at /_rels/.rels in the package):

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

Next, the minimum content for the Workbook part must be defined (physically located at /workbook.xml in the package):

<workbook xmlns="…" xmlns:r="…">
  <sheets>
    <sheet name="1" sheetId="1" r:id="rId1" /> 
  </sheets>
</workbook>

Next, the required workbook-level relationship to the single Sheet part must be defined, (physically located at /_rels/workbook.xml.rels in the package):

<Relationships xmlns="…">
  <Relationship Id="rId1"  
   Type="http://schemas.openxmlformats.org/officeDocument/2006/
   relationships/worksheet" Target="sheet1.xml" />
</Relationships>

Finally, the minimum content for a single Sheet part must be defined (physically located at /sheet1.xml in the package):

<worksheet xmlns="…" xmlns:r="…">
  <sheetData /> 
</worksheet>
example:
/_rels/.rels	Package-relationship item
/[Content_Types].xml	Content-type item
/docProps/app.xml	Application-Defined File Properties part
/docProps/core.xml	Core File Properties part
/xl/workbook.xml 	Workbook part
/xl/_rels/workbook.xml.rels 	Part-relationship item
/xl/calcChain.xml	Calculation Chain part
/xl/sharedStrings.xml	Shared String Table part
/xl/styles.xml	Styles part
/xl/volatileDependencies.xml	Volatile Dependencies part
/xl/theme/theme1.xml	Theme part
/xl/worksheets/sheet1.xml	Worksheet parts
/xl/worksheets/sheet2.xml
/xl/worksheets/sheet3.xml

The package-relationship item contains the following:

<Relationships xmlns="…">
  <Relationship Id="rId3" 
    Type="http://…/extended-properties" Target="docProps/app.xml"/>
  <Relationship Id="rId2" 
    Type="http://…/core-properties" Target="docProps/core.xml"/>
  <Relationship Id="rId1" 
    Type="http://…/officeDocument" Target="xl/workbook.xml"/>
</Relationships>