ezodf
A Python package to create/manipulate OpenDocumentFormat files.
What it is and what it does
ezodf is a Python library for programmatic creation and manipulation of OpenDocument Format (ODF) files—the standard format used by LibreOffice and OpenOffice. It lets you create new documents (text, spreadsheet, presentation, drawing) from scratch or open existing ones, then add or modify content like paragraphs, headings, sheets, cells, and formulas. The library abstracts away the XML complexity of ODF's ZIP-based structure, exposing a simple Python API for common document operations.
The package was last released in December 2015 and is no longer actively maintained. Its classifiers declare support for Python 2.6 through 3.4, versions that are now end-of-life. While the GitHub repository has not been archived, the lack of recent commits and releases means it has not been updated for modern Python ecosystems, security patches, or compatibility with current versions of the ODF specification.
Use it for:
- Generate ODF spreadsheets programmatically with cell values, formulas, and formatting from Python scripts or web services.
- Extract and modify text content in OpenDocument text files (.odt) without requiring LibreOffice or OpenOffice to be installed.
- Batch-create presentation or drawing templates in ODF format from data or templates.
- Build document generation pipelines that produce ODF output compatible with LibreOffice and OpenOffice.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ezodf creates, opens, and modifies OpenDocument Format (ODF) files—including text documents, spreadsheets, presentations, and drawings—allowing you to programmatically add, extract, or edit document content.
No. The package is abandoned (last release December 2015, no maintenance since), targets obsolete Python versions (2.6–3.4), and has incomplete or outdated dependency metadata. While it carries no known security vulnerabilities, the lack of maintenance means no fixes for compatibility issues with modern Python, ODF specification updates, or security concerns. Use an actively maintained alternative like python-docx (for Word documents) or openpyxl (for Excel) if your use case permits, or verify thoroughly that ezodf works with your Python version and ODF requirements before committing to it.
Install
ezodf on PyPI
pip
pip install ezodfuv
uv add ezodfpoetry
poetry add ezodfInstalling ezodf
Before you install
High install friction: the package has been abandoned since late 2015 (last release December 2015, last commit November 2022) and targets Python versions 2.6–3.4, which are now obsolete. It requires lxml as a runtime dependency but the fact sheet lists no runtime dependencies, suggesting packaging metadata may be incomplete or outdated.
License in practice
Licensed under MIT (permissive), so you may use, modify, and distribute ezodf freely in commercial and private projects without restriction, though you must include the license notice.
Quickstart
from ezodf import newdoc, Paragraph, Heading, Sheet
odt = newdoc(doctype='odt', filename='text.odt')
odt.body += Heading("Chapter 1")
odt.body += Paragraph("This is a paragraph.")
odt.save()
Requires lxml; targets Python 2.6–3.4 (modern Python versions may not be supported); package is abandoned and not maintained.
Verify before relying
- Whether lxml is correctly declared as a runtime dependency in current package metadata.
- Compatibility with Python versions beyond 3.4 (package classifiers stop at 3.4).
- Whether the package works with modern versions of LibreOffice or OpenOffice formats.
Package facts
| License | MIT License (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | abandoned — 3,896 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 151,372/month — #10,936 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ezodf-0.3.2.tar.gz
Keywords: ODF, OpenDocumentFormat, OpenOffice, LibreOffice
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
odfdoodfdo is a Python library for creating,…
permissive · top 15,000 on PyPI
py3o.templateMerges data into LibreOffice/OpenOffice…
permissive · top 15,000 on PyPI
pyexcel-ezodfCreate, open, and modify OpenDocument Format…
permissive · top 15,000 on PyPI
odfpyOdfpy reads and writes OpenDocument v. 1.2…
unclear · top 5,000 on PyPI
pyexcel-ods3Reads, manipulates, and writes data in ODS…
permissive · top 15,000 on PyPI
adf-libadf_lib creates and manipulates Atlassian…
permissive · top 15,000 on PyPI
onyx-devtoolsA command-line utility that provides developer…
permissive · top 15,000 on PyPI
python-pptxpython-pptx creates, reads, and updates…
permissive · top 1,000 on PyPI
python-editorProgrammatically open your system's $EDITOR…
permissive · top 5,000 on PyPI
unoserverUnoserver runs LibreOffice as a persistent…
permissive · top 15,000 on PyPI