OFF201 - Microsoft Office Open XML File Formats

This seminar covers the Office Open XML (OOXML) file formats used by current versions of Microsoft Office. 

Level: Intermediate

Application programmers, document archivists


This seminar presents the design and implementation of the various Office file formats and provides a number of programming examples that illustrate how to write code that manipulates them. The information presented in this seminar is crucial for anyone needing to extract information from, automatically generate, or transform Office (Word, Excel, PowerPoint) files. 

  • Review of XML (optional module)

  • OpenXML Architecture: This module addresses the general principles of XML as used in OpenXML. 

  • XML Programming in .net and C#: This module discusses the programming interfaces provided in .net for accessing and creating OpenXML documents. 

  • Office Open XML Packages: This module describes the structure of OpenXML "packages" as they are used in Office Open XML. 

  • WordprocesssingML: Describes the specifics of OOXML file contents as used by Microsoft Word. 

  • Custom XML: Describes various features of OOXML that allow connection of OOXML documents to each other. 

  • SpreadsheetML: Describes the specifics of OOXML file contents as used by Microsoft Excel. 

  • DrawingML: Describes how drawings are described in OOXML; primarily used in Word and PowerPoint.  

  • PresentationML: Describes the specifics of OOXML file contents as used by Microsoft PowerPoint. 

  • XSLT and Open XML: Describes how to use XSLT (Extensible Stylesheet Language Transformations) to manipulate OOXML documents. 

  • Experience with Offfice at the "power user" or developer level
  • Experience with Windows programming using .net and C#
  • Familiarity with XML, schemas, Xpath, XSLT, etc. 
Operating systems supported:

Office 2007 and later

Durations and formats: 3 days with labs
2 days lecture only

In the "labs" version of this seminar, learners are guided through a series of development exercises that result in programs that extract information from one OOXML document and use it to populate others.