Paper Office
paper-xlsxAPI referencepreserve.x14

openpyxl.preserve.x14

paper-xlsx 0.2.1 API reference

Conditional-formatting edits on sheets whose rules carry x14 twins.

The model DROPS the <x14:id> twin pointer when re-rendering classic rules (measured), so twin-bearing CF is never re-rendered here: the classic run is COMPOSED from original bytes — surviving blocks verbatim, deleted blocks omitted, sqref-only changes patched in place — and only genuinely NEW blocks are model-rendered (new rules have no twins). The extLst twin entries are patched in lockstep: xm:sqref text follows the classic sqref, and deleted rules' twin entries are removed. Anything this composition cannot express refuses, exactly as v0 did.

check_dv_coexistence

funccheck_dv_coexistence(ws, scan, original)

Refuse only when a classic DV range intersects an x14 DV range — otherwise classic edits proceed and the x14 block stays verbatim.

paramws
paramscan
paramoriginal

plan_cf_composed

funcplan_cf_composed(wb, ws, scan, original, armed_blocks)

(classic_cf_replacement_bytes, extlst_replacement_or_None).

armed_blocks: the arm-time model renders (regions._render_cf tuple), positionally corresponding to the original document's classic CF elements.

paramwb
paramws
paramscan
paramoriginal
paramarmed_blocks

sheet_has_cf_twins

funcsheet_has_cf_twins(scan, original)

True when classic rules carry twin pointers or the extLst carries x14 conditional formattings.

paramscan
paramoriginal

On this page