{"id":21747,"library":"pyexcel-ods3","title":"pyexcel-ods3","description":"A wrapper library to read, manipulate and write data in ODS (Open Document Spreadsheet) format, version 0.6.1. It is part of the pyexcel ecosystem and requires Python 3.6+. Release cadence is low; last release was in 2020.","status":"active","version":"0.6.1","language":"python","source_language":"en","source_url":"https://github.com/pyexcel/pyexcel-ods3","tags":["ods","spreadsheet","pyexcel","open document"],"install":[{"cmd":"pip install pyexcel-ods3","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core plugin system for reading/writing tabular data","package":"pyexcel-io","optional":false},{"reason":"ODS file handling library","package":"pyexcel-ezodf","optional":false},{"reason":"XML parsing used by ezodf","package":"lxml","optional":false}],"imports":[{"note":"pyexcel-ods3 exposes functions directly, not as a module with a class.","wrong":"import pyexcel_ods3","symbol":"get_data","correct":"from pyexcel_ods3 import get_data"},{"note":"Function is named save_data, not save.","wrong":"from pyexcel_ods3 import save","symbol":"save_data","correct":"from pyexcel_ods3 import save_data"}],"quickstart":{"code":"from pyexcel_ods3 import save_data, get_data\ndata = [[1, 2, 3], ['a', 'b', 'c']]\nsave_data('test.ods', data)\nloaded = get_data('test.ods')\nprint(loaded)","lang":"python","description":"Write and read ODS files with a simple 2D list. Note that keys in the result dict are sheet names."},"warnings":[{"fix":"Run: pip install --upgrade pyexcel-ods3 pyexcel-io pyexcel-ezodf","message":"In v0.6.0, the plugin system was revamped. If you upgraded from <0.6.0, you must reinstall or update pyexcel-io and pyexcel-ezodf.","severity":"breaking","affected_versions":">=0.6.0"},{"fix":"Always iterate over dict values or handle sheet names explicitly: for sheet_name, sheet_data in get_data('file.ods').items(): ...","message":"pyexcel-ods3 uses dicts for sheet data; sheet names are dict keys. If the file has multiple sheets, the dict will have multiple entries. Iterating over dict values yields sheets as 2D lists.","severity":"gotcha","affected_versions":"all"},{"fix":"Use Python 3.6 or newer.","message":"Python 3.5 support was dropped in v0.6.0. pyexcel-ods3 now requires Python >=3.6.","severity":"deprecated","affected_versions":">=0.6.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Install with: pip install pyexcel-ods3. Then import: from pyexcel_ods3 import get_data","cause":"Package not installed or incorrect import name.","error":"ModuleNotFoundError: No module named 'pyexcel_ods3'"},{"fix":"Use: from pyexcel_ods3 import save_data","cause":"Using wrong function name (save instead of save_data).","error":"AttributeError: module 'pyexcel_ods3' has no attribute 'save'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}