{"id":10094,"library":"pyexcel-ezodf","title":"pyexcel-ezodf: OpenDocumentFormat files","description":"pyexcel-ezodf is a Python package that serves as a pyexcel plugin, enabling it to read from and write to OpenDocumentFormat (ODF) files, commonly used by LibreOffice or OpenOffice. It provides an easy way to manipulate tabular data within ODS documents through the familiar pyexcel API. The current version is 0.3.4, with releases typically being maintenance updates rather than frequent feature additions.","status":"active","version":"0.3.4","language":"en","source_language":"en","source_url":"https://github.com/pyexcel/pyexcel-ezodf","tags":["excel","spreadsheet","odf","openoffice","libreoffice","pyexcel","ods"],"install":[{"cmd":"pip install pyexcel-ezodf","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Core pyexcel library, which this package extends.","package":"pyexcel","optional":false},{"reason":"Underlying library for ODF manipulation.","package":"ezodf","optional":false}],"imports":[{"note":"Installing pyexcel-ezodf automatically registers it as a plugin for pyexcel, enabling it to handle '.ods' files transparently when using pyexcel's save_as/get_sheet functions.","symbol":"pyexcel","correct":"import pyexcel"},{"note":"These functions offer direct access to pyexcel-ezodf's ODS-specific read/write capabilities, similar to pyexcel's interface but focused on ODS.","symbol":"get_data","correct":"from pyexcel_ezodf import get_data, save_data"}],"quickstart":{"code":"import pyexcel\nimport os\n\n# Data to write to an ODS file\ndata = [\n    [\"Item\", \"Quantity\", \"Price\"],\n    [\"Apple\", 10, 1.5],\n    [\"Banana\", 5, 0.75],\n    [\"Orange\", 8, 1.2]\n]\n\n# Define a temporary file name\nfile_name = \"example.ods\"\n\ntry:\n    # Save the data to an ODS file\n    pyexcel.save_as(array=data, dest_file_name=file_name)\n    print(f\"'{file_name}' created successfully.\")\n\n    # Read data from the ODS file\n    sheet = pyexcel.get_sheet(file_name=file_name)\n    print(\"\\nRead data from ODS file:\")\n    for row in sheet:\n        print(row)\n\n    # You can also get a dictionary or other formats\n    book_dict = pyexcel.get_book_dict(file_name=file_name)\n    print(\"\\nBook dictionary:\", book_dict)\n\nfinally:\n    # Clean up the created file\n    if os.path.exists(file_name):\n        os.remove(file_name)\n        print(f\"Cleaned up '{file_name}'.\")\n","lang":"python","description":"This quickstart demonstrates how to use `pyexcel-ezodf` as a `pyexcel` plugin to save Python data to an ODS file and then read it back. No explicit import from `pyexcel_ezodf` is needed for `pyexcel` to recognize and handle ODS files; simply installing the plugin is enough."},"warnings":[{"fix":"For extremely large datasets, consider preprocessing the data to reduce file size, or explore alternative libraries that offer streaming or chunked processing for spreadsheet formats like `openpyxl` (for XLSX) if ODS is not a strict requirement.","message":"The underlying `ezodf` library, and consequently `pyexcel-ezodf`, loads the entire ODS document into memory. This can lead to high memory consumption and slow performance when working with very large ODS files.","severity":"gotcha","affected_versions":"All versions (0.3.x)"},{"fix":"Ensure that `pyexcel` and `ezodf` are correctly installed alongside `pyexcel-ezodf`. A fresh installation with `pip install pyexcel-ezodf` should typically pull all necessary dependencies.","message":"`pyexcel-ezodf` is a plugin designed to extend `pyexcel`. If you encounter errors like `pyexcel.exceptions.NoReaderFound` or the ODS file is not handled as expected, it might indicate that either `pyexcel` itself is not installed, or `pyexcel-ezodf`'s dependencies (`ezodf`) are missing.","severity":"gotcha","affected_versions":"All versions (0.3.x)"}],"env_vars":null,"last_verified":"2026-04-17T00:00:00.000Z","next_check":"2026-07-16T00:00:00.000Z","problems":[{"fix":"Install `pyexcel`: `pip install pyexcel` or simply `pip install pyexcel-ezodf` (which includes `pyexcel` as a dependency).","cause":"The core `pyexcel` library, which `pyexcel-ezodf` extends, is not installed.","error":"ModuleNotFoundError: No module named 'pyexcel'"},{"fix":"Install the `pyexcel-ezodf` plugin: `pip install pyexcel-ezodf`.","cause":"`pyexcel-ezodf` is not installed, so `pyexcel` does not have the capability to process OpenDocument Spreadsheet (.ods) files.","error":"pyexcel.exceptions.NoReaderFound: No suitable reader found for 'your_file.ods'"},{"fix":"Install `ezodf`: `pip install ezodf` or ensure `pyexcel-ezodf` was installed correctly which should pull its dependencies.","cause":"The underlying `ezodf` library, a dependency of `pyexcel-ezodf`, is not installed or accessible.","error":"ModuleNotFoundError: No module named 'ezodf'"}]}