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.
default
:docx
,xlsx
,pptx
,office2007
andparts
.schemas
: generate xml schemas, deserializers and serializers. this feature is always enabled.parts
: genrate parts for reading and writing office file.validators
: WIP, for validate xml.docx
: generate docx related schemas, parts etc.xlsx
: generate xlsx related schemas, parts etc.pptx
: generate pptx related schemas, parts etc.office2007
: generate office2007 related schemas, parts etc. this feature is always enabled.office2010
: generate office2010 and below related schemas, parts etc.office2013
: generate office2013 and below related schemas, parts etc.office2016
: generate office2016 and below related schemas, parts etc.office2019
: generate office2019 and below related schemas, parts etc.office2021
: generate office2021 and below related schemas, parts etc.microsoft365
: generate microsoft365 related schemas, parts etc.
- 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 = "512"]
forcargo doc
, you may need to add it too, be cautious when using. - Currently no
serde
support. to_string()
is just forDisplay
, which is slower thanto_xml()
. Prefer usingto_xml()
.
See CHANGELOG.md.
MIT OR Apache-2.0
crates/ooxmlsdk/data
is directly copied from .NET Open XML SDK so this directory is licensed under this license