OOXML: Structure - Asbjoedt/CLISC GitHub Wiki

Structure of an OOXML spreadsheet

https://www.todaysoftmag.com/article/848/getting-started-with-openxml

Source

Parts

  • Calculation chain
  • Chartsheet
  • Comments
  • Connections
  • Custom property
  • Customer XML mappings
  • Dialogsheet
  • Drawings
  • External workbook references
  • Metadata
  • Pivot table
  • Pivot table cache definition
  • Pivot table cache records
  • Query table
  • Shared string table
  • Shared workbook revision log
  • Shared workbook user data
  • Single cell table definition
  • Styles
  • Table definition
  • Volatile dependencies
  • Workbook
  • Worksheet

Parts shared by OOXML standard

  • Embedded package
  • Extended file properties
  • File properties
  • Image
  • Theme

Source

Relationships

All parts in a spreadsheet must be referenced in XML by .rels files. In these files, the <Relationships> element defines any <relationship> through the attributes Id, Type, Target and TargetMode. The relationships may be applied explicitly or implicitly in the spreadsheet.

ISO 29500 Part 1 page 24

Source

Data types

  • Boolean, serialized in XML as "b"
  • Date, serialized in XML as "d"
    • Date is stored as a value in the ISO 8601 format, either DateTime or DateTimeOffset.
  • Error, serialized in XML as "e"
  • InlineString, serialized in XML as "InlineStr"
    • Type used if string should not be stored in the SharedStringTable
  • Number, serialized in XML as "n"
  • SharedString, serialized in XML as "s"
    • A deduplicated string value that can be used by multiple cells
  • String, serialized in XML as "str"
    • Type used when cell contains formula

Embeddings

An OOXML compliant spreadsheet may contain embedded objects/files such as images, 3D objects, another OOXML package or any random binary file using OLE. The embedded object may be rendered visually displaying the actual data or as an clickable icon opening the file in its preferred application.

An OOXML compliant spreadsheet cannot reference an embedded object in another OOXML file.

An object may be referenced without embedding it. The reference may be rendered visually displaying the actual data or as an clickable icon opening the file in its preferred application.

Charts and shapes complying to DrawingML specification are not embedded objects.

Encoding

Conformant OOXML spreadsheets must be encoded in UTF-8 or UTF-16.

Standards