ODS
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
OpenDocument Spreadsheet Preview.
At a glance
| Original creator | OASIS |
| First published | 2005 |
| Purpose | The OpenDocument spreadsheet format: sheets of typed cells and formulas as XML in a ZIP package. |
| Extensions | .ods |
| Poka parser | poka-ods |
| Viewer | poka-table-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: parsers/poka-ods/src/lib.rs (calamine Ods reader, first sheet only, first row used as column names, 200-row cap, cell_str rendering) and tests/samples.rs over the corpus (2 .ods, 2 .ots). Covers ODF spreadsheets and templates; cached cell values only.
What Poka does not read
- Every sheet after the first (other sheet names are listed in the banner, their cells are not shown)
- Formulas (only the stored result is shown)
- Rows beyond the first 200
- Number, date, currency and percentage formatting (values are rendered generically)
- Merged cells, hidden rows, columns and sheets
- Charts, images and embedded objects
- Cell comments, named ranges, conditional formatting and data validation
- Styles, column widths and colours
- Encrypted packages
Background
Part of ODF from version 1.0 (OASIS, May 2005). The Library of Congress notes that ODF 1.2 added OpenFormula as the syntax for formulas, where ODF 1.1 allowed any syntax, which had hurt interoperability. Poka shows the first sheet as a table and lists the other sheet names in the header. Cell decoding (repeated columns, typed values, dates and durations) is done by the calamine library.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| ODF spreadsheet | application/vnd.oasis.opendocument.spreadsheet |
Read |
Derived and related formats
- OpenDocument spreadsheet template (
.ots): Routed to poka-ods in parsers/aliases.toml; the same reader handles it.
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- calamine (used; MIT; Rust)
- zip (used; MIT; Rust)
- spreadsheet-ods (candidate; MIT OR Apache-2.0; Rust; https://github.com/thscharler/spreadsheet-ods) — Reads and writes ODS; unparsed parts kept as raw XML for round-tripping
- odfdo (candidate; Apache-2.0; Python; https://github.com/jdum/odfdo) — Reads/edits ODF incl. .ods (ODF 1.0 to 1.4); has odfdo-to-csv/json tools
- Aspose.Cells for .NET (candidate; Commercial; .NET (also Java etc.); https://docs.aspose.com/cells/net/supported-file-formats/) — Docs list ODS with Load support