Welcome to ooxmlsdk

ooxmlsdk is a Rust library for reading, writing, and round-tripping Office Open XML packages such as .docx, .xlsx, and .pptx.

This documentation targets ooxmlsdk 0.10.2. Unless a page explicitly says otherwise, all API descriptions, limitations, and examples refer to 0.10.2.

Core project links:

Office Open XML is standardized by ECMA-376 and ISO/IEC 29500. The file formats are ZIP packages containing XML parts and explicit relationships, which makes them suitable for Rust tooling that needs deterministic package inspection or transformation.

The crate provides generated schema types, serializers, deserializers, and strongly typed package parts. Its API is Rust-native: methods return Result, package and part types are regular Rust structs, and optional functionality is controlled by Cargo features.

ooxmlsdk works at both layers of the format: the package graph and the XML schema data. You can open an existing document package, follow typed relationships to well-known parts, read or replace part data, load generated root elements, and save the package back to a writer.

Start here

Working with packages

References