Skip to content

Known Differences

This page tracks meaningful differences versus openpyxl/Excel behavior.

Current guidance

  • WolfXL focuses on high-value openpyxl-style workflows, not complete API parity.
  • Feature support should be validated via the compatibility matrix and fixture tests.

Modify mode notes

  • Modify mode uses a surgical patcher for targeted changes.
  • Preserve-value behavior for style-only edits is regression-tested.

Accepted rich-XLSB tier

The XLSB writer accepts exactly the cumulative XLSB_FIDELITY_TIERS ladder (T0 values → T1 calculation → T2 workbook → T3 layout → T4 interactive): values, shared strings, scalar formulas with cached results, temporal types via date number formats, font name/size plus number-format styles, merged cells, row/column dimensions, sheet visibility, document properties, simple worksheet tables, hyperlinks, shape-free legacy comments, and bounded cellIs/expression conditional formatting plus list validations.

Boundaries:

  • Reading is richer than writing: Excel-authored drawings (images, charts) and defined names hydrate from BIFF12 packages, but saving them to XLSB is refused. Preflight (preflight_save(destination_format="xlsb")) reports them as typed dropped/unsupported features before any bytes are written. Legacy comments are accepted only shape-free on XLSB output; sized comment shapes are refused there. XLSX conversion keeps comment shapes untouched.
  • Observed out-of-tier content never reaches the destination: save fails before publication and the source stays untouched.
  • The BIFF12 writer stores formulas together with cached results; callers must explicitly recalculate (for example Workbook.calculate()) before save. WolfXL does not recalculate automatically on save.
  • Independent verification: emitted XLSB reopens through WolfXL and through LibreOffice's BIFF12 import (soffice --headless --convert-to xlsx); LibreOffice represents BIFF12 booleans as TRUE()/FALSE() formulas.

App-level evidence limits

  • PowerView-bearing workbooks are treated as app-unsupported evidence in the local Microsoft Excel smoke harness. Excel can block those files behind a read-only unsupported-content prompt, so they are useful for package-fidelity radar coverage but not for proving clean editable Excel open/close behavior. A Microsoft Error Reporting SIG_FORCE_QUIT / merp log after this kind of blocked prompt is not, by itself, treated as an OOXML repair/corruption signal; the repair signal remains an explicit Excel repair/error dialog.
  • The interactive Excel evidence gate is intentionally stricter than package preservation. On 2026-05-08, targeted source-workbook probes passed for: pivot state, slicer state, timeline state, external-link state, macro project presence, and embedded-control state. The combined strict audit over all six source-workbook probe reports now reports ready=true with no incomplete reports: /tmp/wolfxl-interactive-evidence-external-oracle-all-20260508.json.

Contributing a difference report

When reporting a difference, include:

  1. Minimal workbook sample
  2. Expected behavior (Excel/openpyxl)
  3. Actual WolfXL behavior
  4. Repro code snippet

Link issue reports to benchmark/fidelity artifacts when possible.