Format showing a literal for the value

xlsx.number-format-substitution

A number format whose first section is a quoted literal paints those words over every value, so the grid says one thing and the stored cell says another.

How the text is hidden

Excel's number format sections may contain quoted literals as well as placeholders. A first section that is a quoted literal with no digit placeholder beside it — "APPROVED BY AUDIT" — displays those words for every positive value the cell holds, and the value itself is never drawn anywhere on the grid. The value stays in <v>, unchanged, and the format code sits in xl/styles.xml behind the cell's style index.

Why a model still reads it

The reader sees the literal; the extractor reads the value. This is a divergence rather than concealment — both halves are true statements about the file, and a caller who reads only the extracted text gets the half the reader never saw.

What we do about it

substitutedLiteral splits the format code into sections with quote and backslash handling, takes the first section, and separates its quoted literal from what lies outside the quotes. A digit placeholder (0, #, ?) outside the quotes means the value is still shown, and nothing is reported. Where it is a substitution, the parser emits a second, synthetic run carrying the displayed literal, marked flags.formatSubstituted and visible: true, with structuralDivergence recording the stored value as bytes and the literal as rendered. Both runs reach the caller. The rule xlsx-number-format-substitution fires on the literal run, family B, severity medium, action flag — removing either half would be choosing which half of a document to believe.

How often it fires

0% of 200 real workbooks from five national open-data portals (CA, IE, DE, GR, UK), measured 2026-08-21.

This is an alert-volume number and nothing else. It says how often the alarm sounds on documents as found — not how often it is right, and not whether what it found was harmless. Documents as found may themselves carry concealment. Read it against the population named above rather than as a property of documents in general.

next

Check your own file

Three commands: a key, credit, a verdict.

Start with the API