22 releases
new 0.2.2 | Apr 24, 2025 |
---|---|
0.2.1 | Apr 21, 2025 |
0.1.18 | Nov 5, 2024 |
0.1.17 | Oct 15, 2024 |
0.1.14 | Sep 29, 2024 |
#1835 in Parser implementations
377 downloads per month
Used in ooxmlsdk
170KB
5K
SLoC
Open XML SDK for Rust
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.
Features
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.
What's missing
- 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)
Project Structure
crates/ooxmlsdk
: generated code for deserialize & serialize OOXMLcrates/ooxmlsdk-build
: generate code for deserialize & serialize OOXMLexamples/*
: examples
Known Issues
- 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()
.
Changelog
See CHANGELOG.md.
License
MIT OR Apache-2.0
crates/ooxmlsdk/data
is directly copied from .NET Open XML SDK so this directory is licensed under this license
Dependencies
~2–3.5MB
~64K SLoC