Skip to content

v1.7.0 — ODS conditional formatting & pivot tables

Choose a tag to compare

@leiverkus leiverkus released this 22 May 15:32
· 19 commits to main since this release

ODS conditional formatting and pivot tables (ROADMAP Track D, item 5) — the two remaining xlsx-skill features that were ODS gaps.

Added

  • add_conditional_format.py — highlight a cell range by value or formula condition (value > N, value between A B, formula:EXPR, …) with --background, --text-color, --bold, --italic. Each rule is written both as a calcext:conditional-format (the form LibreOffice renders) and as an ODF-core style:map; repeating the command on the same range stacks another rule.
  • add_pivot_table.py — compute a pivot (group-by + sum/count/average/min/max) and write the result grid into the target range, plus a matching ODF-core table:data-pilot-table so LibreOffice treats it as a real, refreshable pivot. --rows supports nested grouping; --columns is optional; the target sheet is created if missing.
  • list_pivot_tables.py — list all table:data-pilot-table definitions as JSON.

Changed

  • parse_range moved from add_data_validation.py to ods_common.py and is now shared; it also accepts the fully-qualified Sheet.A1:Sheet.C10 range form.
  • validate_refs.py (ODS) gains checks for dangling style:map style references and pivot tables whose source/target range names an unknown sheet.
  • validate_refs.py --strict is now extension-aware: the documented calcext LibreOffice namespace is excluded from the OASIS core-schema check and reported as a warning instead of an error.

Full changelog: CHANGELOG.md

🤖 Generated with Claude Code