Skip to content

CellProperties

Defined in: src/core/document-model/types.ts:882

§17.4.30 w:tcPr — a cell’s properties: span/merge, chrome, and CF overlays.

readonly optional borders?: CellBorders

Defined in: src/core/document-model/types.ts:894


readonly optional colSpan?: number

Defined in: src/core/document-model/types.ts:892


readonly optional dataBar?: CellDataBar

Defined in: src/core/document-model/types.ts:909


readonly optional dropdown?: boolean

Defined in: src/core/document-model/types.ts:916

A data-validation list cell (E-SHEET SV1): the renderer paints an in-cell dropdown affordance at the cell’s right edge (a small button + ▾ glyph).


readonly optional hashOnOverflow?: boolean

Defined in: src/core/document-model/types.ts:936

The cell holds a NUMBER under a format of its own, so it may not be shown truncated: a date cut to “4/30/201” is not a shorter date, it is the wrong one. Excel and LibreOffice fill such a cell with # instead, which says “widen me” and cannot be misread. Text is exempt — a clipped word is still recognisably that word.


readonly optional hideMark?: boolean

Defined in: src/core/document-model/types.ts:928

§17.4.20 w:hideMark — the cell’s end-of-cell mark is not counted when the row’s height is measured, so an EMPTY cell that says so adds nothing at all.


readonly optional icon?: CellIcon

Defined in: src/core/document-model/types.ts:910


readonly optional margins?: CellMargins

Defined in: src/core/document-model/types.ts:895


readonly optional merge?: CellMerge

Defined in: src/core/document-model/types.ts:893


readonly optional noWrap?: boolean

Defined in: src/core/document-model/types.ts:923

The cell’s text is not allowed to wrap: it renders on one line and whatever does not fit the cell box is cut, as a spreadsheet cell without wrapText does. Only the paginated layout honours it — an HTML view has no page edge to clip against and lets the browser decide.


readonly optional paintColumns?: number

Defined in: src/core/document-model/types.ts:907

How many of the spanned columns the cell’s own PAINT covers, when that is fewer than colSpan.

Text overflow is modelled as a span — a cell whose value does not fit runs across the empty neighbours to its right — but Excel runs the TEXT over an unpainted cell without painting it. With one width for both, a filled cell carried its fill along: 54436.xlsx ran its pivot header’s blue a whole column past the pivot. Absent ⇒ the paint covers the whole span, which is what a merge wants.


readonly optional shading?: CellShading

Defined in: src/core/document-model/types.ts:908


readonly optional sparkline?: CellSparkline

Defined in: src/core/document-model/types.ts:911


readonly optional textDirection?: "vert" | "vert270"

Defined in: src/core/document-model/types.ts:950

§17.4.71 w:textDirection / §21.1.3.17 a:tcPr@vert — the cell’s text is turned a quarter: vert reads top-to-bottom (turned clockwise), vert270 bottom-to-top. Its lines then run along the cell’s HEIGHT and stack across its width, which is what makes a narrow header column readable.


readonly optional verticalAlign?: "top" | "bottom" | "center"

Defined in: src/core/document-model/types.ts:943

Where the cell’s content sits in a box taller than itself. A spreadsheet cell defaults to 'bottom' — §18.8.1, and both Excel and LibreOffice do it — which is visible on any row taller than its text. Absent ⇒ the top, which is a word-processor table’s default.


readonly optional width?: Pt

Defined in: src/core/document-model/types.ts:883


readonly optional widthFraction?: number

Defined in: src/core/document-model/types.ts:889

§17.4.72 w:tcW w:type="pct" — the cell’s preferred width as a share of the table (w/5000). Held apart from width because a percentage cannot be resolved until the table’s own width is known.


readonly optional widthType?: "auto" | "dxa" | "pct" | "nil"

Defined in: src/core/document-model/types.ts:891

§17.18.90 ST_TblWidth — which of the two above the cell actually declared.