Skip to content

OOXML: Structure

Asbjørn Skødt edited this page Oct 7, 2022 · 11 revisions

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

Encoding

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

Standards

Clone this wiki locally