Open XML SDK for Rust (ooxmlsdk) is a Rust library for working with Office Word, Excel, and PowerPoint documents. The basic idea is inspired by .NET Open XML SDK.
- Deserialize/serialize OOXML for Rust structs
- Namespace support
- Read & Write
docx
,xlsx
andpptx
file - All Rust structs and ser/de code are generated from metadata (
crates/ooxmlsdk/data
) - Documentation for Rust structs
- No validation (WIP)
- No Particle: all xml children is in a flattern
children
vector of enum (OneSequence
is supported, xml children are represented as struct's fields)
crates/ooxmlsdk
: generated code for deserialize & serialize OOXMLcrates/ooxmlsdk-build
: generate code for deserialize & serialize OOXMLexamples/*
: examples
- This library raise recursion limit by
#![recursion_limit = "768"]
forcargo doc
, you may need to add it too, be cautious when use. - Currently no
serde
support: intial benches showserde
slower than current custom implemention;serde
somehow not good at working with xml, you need a lot of special rename for xml attribute or children.
MIT OR Apache-2.0
crates/ooxmlsdk/data
is directly copied from .NET Open XML SDK so this directory is licensed under this license