SheetXL - v1.0.2
    Preparing search index...

    Type Alias FormulaArrayKind

    FormulaArrayKind: "dynamic" | "fixed" | "error" | "pivot"

    How a formula's array extent is to be interpreted.

    There are three on-disk formula states, not two, and the extent means a different thing in each:

    • dynamic - the extent is derived from the result. It spills, and it resizes when the result shape changes.
    • error - a dynamic formula whose spill is currently blocked (#SPILL!). The recorded extent collapses to the anchor cell.
    • fixed - array-entered (Ctrl+Shift+Enter). The extent is authoritative and the result is fitted to it (a dimension of 1 broadcasts, a longer one is clipped, a shorter one is padded with #N/A); it never spills and never resizes. Written through ICellRange.SetValuesOptions.arrayFixed.

    fixed + error is not a state: a fixed block owns its cells, so a write into part of it is refused at the write site rather than detected at calc. That is what lets these three be one enum rather than two booleans.

    A fourth kind is the calculation engine's alone: pivot, the cells a pivot table lays out. It is never saved, and a cell never reports it (ICell.getSpillKind): a pivot table's cells are the table's, not an array's. A blocked pivot table is error.