Release note · August 1, 2026

A safer way to inventory Excel Binary Workbooks

By SybilGambleyyu · FormulaFence 0.219.0

Excel Binary Workbook files (.xlsb) are useful for large models, but a familiar filename does not make them a small variation of .xlsx. Formula syntax is stored as BIFF12 reverse-polish tokens, while workbook state lives in binary records behind a ZIP package. A tool that silently turns an unfamiliar token into plausible-looking formula text can produce the most dangerous kind of review result: one that looks complete without being complete.

FormulaFence 0.219.0 introduces a deliberately narrow answer: formulafence profile workbook.xlsb. It is an inventory path, not general XLSB parity. lint, diff, check, and portfolio still reject .xlsb, and the underlying public analysis APIs reject the narrowed snapshot as well.

Start with a reader boundary

The reader applies the same fail-closed ZIP preflight as FormulaFence's ordinary workbook path, then reads only the workbook catalog, its relationship part, optional shared strings, and selected worksheet binary parts. It validates BIFF12 record framing, bounds record counts and retained cells, restricts relationship XML to a small documented grammar, and limits binary and decoded-formula memory. It never evaluates a formula, macro, or external target.

Microsoft's XLSB format overview and formula grammar define many more record and token forms than a trustworthy first reader should pretend to understand. FormulaFence reconstructs only a verified subset—ordinary references and areas, literals, operators, selected functions, names, and verified internal 3-D forms. An encountered construct outside that set becomes an explicit formula-text coverage gap; it is never rendered as a guess.

Make the limits visible in the artifact

An XLSB profile starts with xlsb_core_profile scope, the only supported workflow, and a formula-token coverage flag. Markdown explicitly says that counts outside that scope are unassessed. That avoids treating a zero in a normal profile field as evidence that the binary workbook lacks controls, formatting, arrays, calculation settings, external relationships, rich data, or saved-result state.

The public artifact is data-minimising: it withholds cell values, formula text, defined-name labels, and definition bodies. The reader uses the latter only transiently when an indexed token requires it, then retains aggregate counts and coverage evidence. This lets teams inventory a binary workbook without making the resulting review file a second copy of its sensitive model logic.

Evidence before a broader claim

The implementation was replayed against 18 public XLSB fixtures from calamine and Apache POI. Fifteen current ZIP packages loaded; twelve had complete verified token coverage and three surfaced an honest coverage gap. Two protected/non-ZIP samples failed archive preflight before a binary part was read. An older Excel 2007 Beta 2 fixture was declined rather than parsed through an incompatible historical layout. Focused tests cover framing, relationships, cell and formula records, resource ceilings, redaction, and workflow gates; deterministic malformed-input sweeps covered 30,000 cases without an unexpected implementation exception.

The validation record has the corpus and boundary details. The release passed 1,584 tests, package metadata checks, and a fresh-wheel profile smoke test.

Use the release

python -m pip install https://github.com/SybilGambleyyu/formulafence/releases/download/v0.219.0/formulafence-0.219.0-py3-none-any.whl
formulafence profile model.xlsb --format markdown --output xlsb-profile.md

FormulaFence is MIT-licensed and available on GitHub. For the broader change-assurance workflow for full .xlsx and .xlsm inspection, see Spreadsheet changes that can pass CI.