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 asTRUE()/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/merplog 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=truewith no incomplete reports:/tmp/wolfxl-interactive-evidence-external-oracle-all-20260508.json.
Contributing a difference report¶
When reporting a difference, include:
- Minimal workbook sample
- Expected behavior (Excel/openpyxl)
- Actual WolfXL behavior
- Repro code snippet
Link issue reports to benchmark/fidelity artifacts when possible.