This project aims to provide a streamlined, efficient way to create and manipulate Excel, PowerPoint, and Word documents using the OpenXML format. By leveraging the power of modern programming languages, this library simplifies the process of document creation, enabling developers to focus on functionality rather than the intricacies of the OpenXML standard.
This project is dual-licensed:
- Open Source — AGPL-3.0 (see LICENSE). Free to use, including commercially, as long as you comply with AGPL-3.0 copyleft (share source of derivatives and network-served versions).
- Commercial License for closed-source / proprietary use without AGPL obligations — available to sponsors (see COMMERCIAL-LICENSE.md).
💜 If this project helps you or your business, please consider sponsoring — sponsors get the commercial license, private releases, and priority support.
Please refer stable branch for V2/Stable Package related details. This is active development Branch
Docs - Will Try to keep the alpha release documents updated as much possible
| Supported Languages | Min.Support Version | Readme link | Packages | package link | Description |
|---|---|---|---|---|---|
| Rust | 1.32 | README | draviavemal-openxml_office | Crates | Rust crate directly connecting to core lib |
| C# | .net6.0 | README | draviavemal.openxml-office | Nuget | C# wrapper package wrote around FFI layer of rust |
| Python | 3.8 | README | Python | PyPi | Python Wrapper package wrote around FFI layer of rust using cffi |
| ---------------- | ---------- | --------- | -------- | --------- | ------- |
| PHASE 2 | PHASE 2 | PHASE 2 | PHASE 2 | PHASE 2 | PHASE 2 |
| --------------- | ----------- | --------- | -------- | ---------- | ------- |
| Java | 1.8 | TODO | Java | Maven Central | Java wrapper package wrote around FFI layer of rust |
| Go | 1.22 | TODO | Go | Github | Go wrapper package wrote around FFI layer of rust |
| TypeScript | TODO | TypeScript | npm | NAPI-RS is used to expose the core lib as node addon | |
| Rust-API | Docker Hub | API container running rust crate for HTTP support along with quic support |
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. If you have suggestions that could improve this project, please fork the repo and create a pull request. Alternatively, you can open an issue tagged "enhancement." Don’t forget to star the project!
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please ensure you follow the PR and issue templates for quicker resolution.
Your feedback and support are important. Feel free to reach out with any questions or suggestions.