SheetXL - v0.8.0-beta.9+sites.210.e2d420901
    Preparing search index...

    Function appendMovables

    • One section per content type — ## Charts (1), ## Shapes (11 · 4 with text) — over the pictures, charts, shapes and slicers floating over the report's range.

      Parameters

      Returns void

      The one class of sheet content that appears in no other section. Everything else these reports describe lives in cells and is reachable by address; a movable floats over the grid and is invisible to every values, region and rule listing — so without these a report about a dashboard sheet says the sheet is nearly empty, which is true of its cells and false of what anyone looking at it sees.

      A section per type, the way tables have one. A reader looks for charts, or for the notes an author left; nobody looks for "movables", which is the SDK's word for how these are stored. The heading is the type, so no row spends a column repeating it.

      Rows are anchor · preset · prose · "text". The anchor is what getRange() takes and says which cells the object is about; the preset says what kind of shape it is — a callout points at something, a text box stands alone. A chart's type takes the preset's column, and what it plots is labeled lines beneath its row, the way a table's facts are: a chart states three ranges, and on one line nothing says which is which.

      What is written on a shape rides its row, and those rows lead — in reading order, ahead of the rest in z-order. Text on a shape is almost never decoration: it is a note from the author to the reader — what a block means, which cell to change, what not to touch — and the heading counts them so a reader knows to look. Leading also makes the cap safe: what it eats is bare rectangles. Hidden movables are listed and marked; they are the ones a reader cannot otherwise learn about.