Skip to content

@shbernal/pptxgenjs


@shbernal/pptxgenjs / index / TableToSlidesProps

Interface: TableToSlidesProps

Defined in: core-interfaces.ts:1292

Extends

Properties

_arrObjTabHeadRows?

optional _arrObjTabHeadRows?: TableRow[]

Defined in: core-interfaces.ts:1293

Overrides

TableProps._arrObjTabHeadRows


addImage?

optional addImage?: object

Defined in: core-interfaces.ts:1302

Add an image to slide(s) created during autopaging

  • image prop requires either path or data
  • see DataOrPathProps for details on image props
  • see PositionProps for details on options props

image

image: DataOrPathProps

options

options: PositionProps


addShape?

optional addShape?: object

Defined in: core-interfaces.ts:1306

Add a shape to slide(s) created during autopaging

options

options: ShapeProps

shapeName

shapeName: SHAPE_NAME


addTable?

optional addTable?: object

Defined in: core-interfaces.ts:1310

Add a table to slide(s) created during autopaging

options

options: TableProps

rows

rows: TableRow[]


addText?

optional addText?: object

Defined in: core-interfaces.ts:1314

Add a text object to slide(s) created during autopaging

options

options: TextPropsOptions

text

text: TextProps[]


align?

optional align?: HAlign

Defined in: core-interfaces.ts:542

Horizontal alignment

Default

ts
'left'

Inherited from

TableProps.align


altText?

optional altText?: string

Defined in: core-interfaces.ts:800

Alt Text value ("How would you describe this object and its contents to someone who is blind?")

  • serialized to the generated object's p:cNvPr descr attribute
  • PowerPoint: [right-click on the object] > "Edit Alt Text..."

Example

ts
'Quarterly revenue bar chart'

Inherited from

TableProps.altText


autoPage?

optional autoPage?: boolean

Defined in: core-interfaces.ts:1320

Whether to enable auto-paging

  • auto-paging creates new slides as content overflows a slide

Default

ts
true

Overrides

TableProps.autoPage


autoPageCharWeight?

optional autoPageCharWeight?: number

Defined in: core-interfaces.ts:1328

Auto-paging character weight

  • adjusts how many characters are used before lines wrap
  • range: -1.0 to 1.0

Default

ts
0.0

Example

ts
0.5 // lines are longer (increases the number of characters that can fit on a given line)

Overrides

TableProps.autoPageCharWeight


autoPageHeaderRows?

optional autoPageHeaderRows?: number

Defined in: core-interfaces.ts:1546

Number of rows that comprise table headers

  • required when autoPageRepeatHeader is set to true.

Example

ts
2 - repeats the first two table rows on each new slide created

Default

ts
1

Inherited from

TableProps.autoPageHeaderRows


autoPageLineWeight?

optional autoPageLineWeight?: number

Defined in: core-interfaces.ts:1336

Auto-paging line weight

  • adjusts how many lines are used before slides wrap
  • range: -1.0 to 1.0

Default

ts
0.0

Example

ts
0.5 // tables are taller (increases the number of lines that can fit on a given slide)

Overrides

TableProps.autoPageLineWeight


autoPagePlaceholder?

optional autoPagePlaceholder?: boolean

Defined in: core-interfaces.ts:1559

Whether populated placeholders on the source slide (e.g. a title set via addText(text, { placeholder })) are copied onto each overflow slide created by autoPage.

  • new slides otherwise inherit only the layout's empty placeholders, so a title set on the first slide would not appear on continuation slides.

Default

ts
false

Inherited from

TableProps.autoPagePlaceholder


autoPageRepeatHeader?

optional autoPageRepeatHeader?: boolean

Defined in: core-interfaces.ts:1341

Whether to repeat head row(s) on new tables created by autopaging

Default

ts
false

Overrides

TableProps.autoPageRepeatHeader


autoPageSlideStartY?

optional autoPageSlideStartY?: number

Defined in: core-interfaces.ts:1346

The y location to use on subsequent slides created by autopaging

Default

ts
(top margin of Slide)

Overrides

TableProps.autoPageSlideStartY


bold?

optional bold?: boolean

Defined in: core-interfaces.ts:547

Bold style

Default

ts
false

Inherited from

TableProps.bold


border?

optional border?: BorderProps | [BorderProps, BorderProps, BorderProps, BorderProps]

Defined in: core-interfaces.ts:1565

Table border

  • single value is applied to all 4 sides
  • array of values in TRBL order for individual sides

Inherited from

TableProps.border


breakLine?

optional breakLine?: boolean

Defined in: core-interfaces.ts:552

Add a line-break

Default

ts
false

Inherited from

TableProps.breakLine


bullet?

optional bullet?: boolean | { characterCode?: string; color?: string; fontFace?: string; image?: { data?: string; path?: string; }; indent?: number; numberStartAt?: number; numberType?: "alphaLcParenBoth" | "alphaLcParenR" | "alphaLcPeriod" | "alphaUcParenBoth" | "alphaUcParenR" | "alphaUcPeriod" | "arabicParenBoth" | "arabicParenR" | "arabicPeriod" | "arabicPlain" | "romanLcParenBoth" | "romanLcParenR" | "romanLcPeriod" | "romanUcParenBoth" | "romanUcParenR" | "romanUcPeriod"; size?: number; type?: "number" | "bullet"; }

Defined in: core-interfaces.ts:567

Add standard or custom bullet

  • use true for standard bullet
  • pass object options for custom bullet

Union Members

boolean


Type Literal

{ characterCode?: string; color?: string; fontFace?: string; image?: { data?: string; path?: string; }; indent?: number; numberStartAt?: number; numberType?: "alphaLcParenBoth" | "alphaLcParenR" | "alphaLcPeriod" | "alphaUcParenBoth" | "alphaUcParenR" | "alphaUcPeriod" | "arabicParenBoth" | "arabicParenR" | "arabicPeriod" | "arabicPlain" | "romanLcParenBoth" | "romanLcParenR" | "romanLcPeriod" | "romanUcParenBoth" | "romanUcParenR" | "romanUcPeriod"; size?: number; type?: "number" | "bullet"; }

characterCode?

optional characterCode?: string

Bullet character code (unicode)

Example
ts
'25BA' // 'BLACK RIGHT-POINTING POINTER' (U+25BA)
color?

optional color?: string

Bullet glyph color (separate from the text run color)

Example
ts
'FF0000' // red bullet
fontFace?

optional fontFace?: string

Bullet glyph font typeface (<a:buFont/>), e.g. for symbol-font bullets

Example
ts
'Wingdings' // render `characterCode` using the Wingdings font
image?

optional image?: object

Image to use as the bullet glyph ("picture bullet", <a:buBlip>)

  • supply an image path (filesystem/URL) or base64 data (same forms as addImage())
  • raster formats (PNG/JPG/GIF) and SVG are supported; use size to scale relative to the text height
  • SVG bullets embed a PNG preview plus the SVG (the same dual-rel handling as addImage())
  • takes precedence over type/characterCode when set
Examples
ts
image: { path: 'images/star.png' }
ts
image: { data: 'image/png;base64,iVBOR...' }
ts
image: { path: 'images/star.svg' }
image.data?

optional data?: string

image.path?

optional path?: string

indent?

optional indent?: number

Indentation (space between bullet and text) (points)

Default
ts
27 // DEF_BULLET_MARGIN
Example
ts
10 // Indents text 10 points from bullet
numberStartAt?

optional numberStartAt?: number

Number bullets start at

Default
ts
1
Example
ts
10 // numbered bullets start with 10
numberType?

optional numberType?: "alphaLcParenBoth" | "alphaLcParenR" | "alphaLcPeriod" | "alphaUcParenBoth" | "alphaUcParenR" | "alphaUcPeriod" | "arabicParenBoth" | "arabicParenR" | "arabicPeriod" | "arabicPlain" | "romanLcParenBoth" | "romanLcParenR" | "romanLcPeriod" | "romanUcParenBoth" | "romanUcParenR" | "romanUcPeriod"

Number type

Example
ts
'romanLcParenR' // roman numerals lower-case with paranthesis right
size?

optional size?: number

Bullet glyph size as a percentage of the run's text size (25–400)

Default
ts
100
Example
ts
80 // bullet glyph is 80% of the text size
type?

optional type?: "number" | "bullet"

Bullet type

Default
ts
bullet

Default

ts
false

Inherited from

TableProps.bullet


caps?

optional caps?: "small" | "all" | "none"

Defined in: core-interfaces.ts:659

Text capitalization

  • 'all' = ALL CAPS
  • 'small' = Small Caps
  • 'none' = no override (default)
  • PowerPoint: Font > Effects > All Caps / Small Caps

Inherited from

TableProps.caps


color?

optional color?: string

Defined in: core-interfaces.ts:667

Text color

  • HexColor or ThemeColor
  • MS-PPT > Format Shape > Text Options > Text Fill & Outline > Text Fill > Color

Examples

ts
'FF0000' // hex color (red)
ts
pptx.SchemeColor.text1 // Theme color (Text1)

Inherited from

TableProps.color


columns?

optional columns?: TableCellProps[]

Defined in: core-interfaces.ts:1715

Per-column default cell styling, applied as direct per-cell formatting.

columns[i] is merged onto every cell that starts in column i (fill, color, bold, align, valign, border, margin, …), so a wide colored matrix — per-column fills, maturity-gradient headers — does not require hand-writing a fill onto every cell. Entries may be sparse (columns[2] alone styles only column 2); an undefined/omitted entry leaves that column untouched. The whole option is optional and degrades cleanly to today's text-on-white when not given.

Precedence (highest wins), matching how PowerPoint resolves styling — direct cell formatting overrides a table-style region:

  1. explicit per-cell options
  2. headerRow (row 0 only)
  3. this columns[colIdx]
  4. wholeTbl / tableStyle / defaults

The merge is property-level, so a header cell keeps headerRow's typography and takes its column's fill when they set different properties. For a graduated header band, put shared header typography (bold/white/centered, no fill) in headerRow and let each columns[i].fill supply that column's fill.

Column index counts each cell's colspan (default 1) within a row, so merged cells map to the correct column; it does not track rowspans inherited from earlier rows.

There is deliberately no built-in "group bracket" annotation. Label a span of columns by composing existing primitives: addShape('rightBrace', …) (or 'bracePair') plus addText, positioned from the table's x and colW (a span's x/w is the running sum of the preceding/covered column widths).

Examples

ts
columns: [{}, { fill: { color:'E8F0FE' } }, { fill: { color:'C6DAFC' } }] // per-column solid fills
ts
// gradient header: shared typography on headerRow, graduated fills per column
headerRow: { color:'FFFFFF', bold:true, align:'center' },
columns: [{}, { fill:{color:'BBD3FB'} }, { fill:{color:'89AEF6'} }, { fill:{color:'4B7BE5'} }]

Inherited from

TableProps.columns


colW?

optional colW?: number | number[]

Defined in: core-interfaces.ts:1350

Column widths (inches)

Overrides

TableProps.colW


fill?

optional fill?: ShapeFillProps

Defined in: core-interfaces.ts:1722

Cell background color

Examples

ts
{ color:'FF0000' } // hex color (red)
ts
{ color:'0088CC', transparency:50 } // hex color, 50% transparent
ts
{ color:pptx.SchemeColor.accent1 } // theme color Accent1

Inherited from

TableProps.fill


fit?

optional fit?: "resize" | "none" | TextFitShrinkProps | "shrink"

Defined in: core-interfaces.ts:1597

Table-level text-fit policy, cascaded to every cell that does not set its own TableCellProps.fit.

  • 'shrink': each cell whose row has a fixed height that its wrapped text would exceed gets a reduced literal font size baked onto its runs so the text fits (see TableCellProps.fit for the full semantics and the font-metrics requirement). Cells that set their own fit win over this table default.
  • 'none' / 'resize' / the object form are accepted for parity with TextPropsOptions.fit but only 'shrink' is acted on for table cells.

Default

ts
undefined (cells keep their authored size)

Example

ts
'shrink'

Inherited from

TableProps.fit


fitColumns?

optional fitColumns?: "shrink"

Defined in: core-interfaces.ts:1584

Shrink columns proportionally so a too-wide table fits the slide.

  • 'shrink': if the total column width exceeds the space available between the table's x and the right slide margin, scale every column down by the same factor so the whole table fits. Columns that already fit are untouched.
  • applies to an explicit colW array (the common "too many columns" case) and to a w wider than the slide; never grows columns and never enforces a minimum width, so a very high column count can still become thin.
  • opt-in: explicit widths are otherwise emitted as-is and may run off the slide.

Default

ts
undefined (no scaling)

Inherited from

TableProps.fitColumns


fontFace?

optional fontFace?: string

Defined in: core-interfaces.ts:677

Font face name

Applied to the Latin (<a:latin>) and complex-script (<a:cs>) font slots, matching how PowerPoint writes a font picked from the UI. The East Asian slot (<a:ea>) is left to inherit from the theme unless fontFaceEA is set — forcing a Latin-only face into the East Asian slot duplicates/ghosts text in Office 365.

Example

ts
'Arial' // Arial font

Inherited from

TableProps.fontFace


fontFaceEA?

optional fontFaceEA?: string

Defined in: core-interfaces.ts:685

East Asian font face name (<a:ea> slot), used to render CJK (Chinese/Japanese/Korean) glyphs

Set this when the East Asian font differs from fontFace. When omitted, <a:ea> inherits the theme East Asian font, which is what PowerPoint does for Latin fonts.

Example

ts
'微軟正黑體' // render East Asian glyphs with Microsoft JhengHei

Inherited from

TableProps.fontFaceEA


fontSize?

optional fontSize?: number

Defined in: core-interfaces.ts:690

Font size

Example

ts
12 // Font size 12

Inherited from

TableProps.fontSize


h?

optional h?: Coord

Defined in: core-interfaces.ts:61

Height

  • inches or percentage

Examples

ts
10.25 // height in inches
ts
'75%' // height as percentage of slide size

Inherited from

TableProps.h


hasBandedColumns?

optional hasBandedColumns?: boolean

Defined in: core-interfaces.ts:1625

Enable alternating column (band) shading. Emits bandCol="1" on <a:tblPr>, activating band1V/band2V style regions. Requires tableStyle to have a visible effect.

Default

ts
false

Inherited from

TableProps.hasBandedColumns


hasBandedRows?

optional hasBandedRows?: boolean

Defined in: core-interfaces.ts:1618

Enable alternating row (band) shading. Emits bandRow="1" on <a:tblPr>, activating band1H/band2H style regions. Requires tableStyle to have a visible effect.

Default

ts
false

Inherited from

TableProps.hasBandedRows


hasFirstColumn?

optional hasFirstColumn?: boolean

Defined in: core-interfaces.ts:1632

Apply special styling to the first column. Emits firstCol="1" on <a:tblPr>, activating the firstCol style region. Requires tableStyle to have a visible effect.

Default

ts
false

Inherited from

TableProps.hasFirstColumn


hasFooter?

optional hasFooter?: boolean

Defined in: core-interfaces.ts:1611

Mark the last row as a footer row. Emits lastRow="1" on <a:tblPr>, activating the last-row style region. Requires tableStyle to have a visible effect.

Default

ts
false

Inherited from

TableProps.hasFooter


hasHeader?

optional hasHeader?: boolean

Defined in: core-interfaces.ts:1604

Mark the first row as a header row. Emits firstRow="1" on <a:tblPr>, activating the first-row style region of the table style and satisfying the PowerPoint accessibility checker's "table header" rule.

Default

ts
false

Inherited from

TableProps.hasHeader


hasLastColumn?

optional hasLastColumn?: boolean

Defined in: core-interfaces.ts:1639

Apply special styling to the last column. Emits lastCol="1" on <a:tblPr>, activating the lastCol style region. Requires tableStyle to have a visible effect.

Default

ts
false

Inherited from

TableProps.hasLastColumn


headerRow?

optional headerRow?: TableCellProps

Defined in: core-interfaces.ts:1679

Inline styling for the header (first) row, applied as direct per-cell formatting.

Convenience shortcut for styling a header distinctly from the body without first registering a custom style via pptx.defineTableStyle({ firstRow }). Each property is merged onto every cell of row 0 (fill, color, bold, align, border, etc.).

Precedence (highest wins), matching how PowerPoint resolves styling — direct cell formatting overrides a table-style region:

  1. explicit per-cell options on a row-0 cell
  2. this headerRow
  3. the firstRow region of any tableStyle
  4. wholeTbl / defaults

Setting headerRow also implies hasHeader: true (emits firstRow="1" for the accessibility "table header" marker) unless hasHeader is explicitly set to false.

Example

ts
headerRow: { fill: { color:'1A2B3C' }, color:'FFFFFF', bold:true, align:'center' }

Inherited from

TableProps.headerRow


highlight?

optional highlight?: string

Defined in: core-interfaces.ts:695

Text highlight color (hex format)

Example

ts
'FFFF00' // yellow

Inherited from

TableProps.highlight


italic?

optional italic?: boolean

Defined in: core-interfaces.ts:700

italic style

Default

ts
false

Inherited from

TableProps.italic


lang?

optional lang?: string

Defined in: core-interfaces.ts:707

language

  • ISO 639-1 standard language code

Default

ts
'en-US' // english US

Example

ts
'fr-CA' // french Canadian

Inherited from

TableProps.lang


margin?

optional margin?: Margin

Defined in: core-interfaces.ts:1727

Cell margin (inches)

  • affects all table cells, is superceded by cell options

Inherited from

TableProps.margin


masterSlideName?

optional masterSlideName?: string

Defined in: core-interfaces.ts:1355

Master slide name

  • define a master slide to have your auto-paged slides have corporate design, etc.

objectLock?

optional objectLock?: ObjectLockProps

Defined in: core-interfaces.ts:811

Object lock flags (DrawingML a:spLocks / a:picLocks / a:graphicFrameLocks)

  • restrict how the object can be manipulated in PowerPoint (e.g. prevent moving, resizing, or grouping)
  • each flag maps 1:1 to the OOXML attribute of the same name; only flags set to true are emitted
  • PowerPoint UI: Selection Pane / right-click protections (most locks are honored at edit time, not as a password)
  • flags only apply to the object types that support them (see each flag); flags set on an unsupported object type are ignored with a console warning

Examples

ts
{ noMove: true, noResize: true } // pin an object in place
ts
{ noGrp: true } // exclude from grouping

Inherited from

TableProps.objectLock


objectName?

optional objectName?: string

Defined in: core-interfaces.ts:793

Object name

  • used instead of default "Object N" name
  • PowerPoint: Home > Arrange > Selection Pane...

Default

ts
'Object 1'

Example

ts
'Antenna Design 9'

Inherited from

TableProps.objectName


placeholder?

optional placeholder?: string

Defined in: core-interfaces.ts:1510

Name of a table/content placeholder defined on the slide layout/master to bind this table to.

  • when it matches a layout/master placeholder, the table's <p:graphicFrame> emits that placeholder's <p:ph> (idx/type) so PowerPoint treats the table as filling the placeholder (e.g. a "Title and Content" content placeholder)
  • the table also inherits the placeholder's position/size for any of x/y/w/h left unset

Example

ts
'body' // bind to the layout placeholder named 'body'

Inherited from

TableProps.placeholder


rowH?

optional rowH?: number | number[]

Defined in: core-interfaces.ts:1734

Height of table rows (inches)

  • single value is applied to every row equally based upon h
  • array of values in applied to each row in order

Default

rows of equal height based upon h

Inherited from

TableProps.rowH


rtl?

optional rtl?: boolean

Defined in: core-interfaces.ts:1648

Lay the table out right-to-left. Emits rtl="1" on <a:tblPr>, which mirrors the column order so the first column renders on the right — the correct layout for RTL scripts (Arabic, Hebrew). This controls only the table/column direction; per-cell text direction is set with each cell's rtlMode option.

Default

ts
false

Inherited from

TableProps.rtl


slideMargin?

optional slideMargin?: Margin

Defined in: core-interfaces.ts:1360

Slide margin

  • this margin will be across all slides created by auto-paging

softBreakBefore?

optional softBreakBefore?: boolean

Defined in: core-interfaces.ts:712

Add a soft line-break (shift+enter) before line text content

Default

ts
false

Inherited from

TableProps.softBreakBefore


tableStyle?

optional tableStyle?: string

Defined in: core-interfaces.ts:1660

Table style to apply, either a built-in TableStyle member or the GUID returned by pptx.defineTableStyle() for a custom style. Emits <a:tableStyleId> inside <a:tblPr> with the corresponding GUID. Style flags (hasHeader, hasFooter, hasBandedRows, etc.) select which regions of the chosen style are activated; they have no visible effect without a tableStyle set.

Examples

ts
tableStyle: pptx.TableStyle.MEDIUM_STYLE_2_ACCENT_1 // built-in
ts
const brand = pptx.defineTableStyle({ name:'Brand', firstRow:{ fill:'1A2B3C', color:'FFFFFF', bold:true } }); tableStyle: brand

Inherited from

TableProps.tableStyle


tabStops?

optional tabStops?: object[]

Defined in: core-interfaces.ts:718

tab stops

  • PowerPoint: Paragraph > Tabs > Tab stop position

alignment?

optional alignment?: "r" | "l" | "ctr" | "dec"

position

position: number

Example

ts
[{ position:1 }, { position:3 }] // Set first tab stop to 1 inch, set second tab stop to 3 inches

Inherited from

TableProps.tabStops


textDirection?

optional textDirection?: "horz" | "vert" | "vert270" | "wordArtVert"

Defined in: core-interfaces.ts:727

text direction horz = horizontal vert = rotate 90^ vert270 = rotate 270^ wordArtVert = stacked

Default

ts
'horz'

Inherited from

TableProps.textDirection


textWarp?

optional textWarp?: string

Defined in: core-interfaces.ts:560

Preset text warp / WordArt shape (<a:bodyPr><a:prstTxWarp prst="..">), which bends the text along a preset path (arch, circle, wave, …). The value is an OOXML ST_TextShapeType preset name.

Examples

ts
'textArchUp' // bend text along an upward arch (e.g. a label following a ring/arc)
ts
'textCircle'

Inherited from

TableProps.textWarp


transparency?

optional transparency?: number

Defined in: core-interfaces.ts:734

Transparency (percent)

  • MS-PPT > Format Shape > Text Options > Text Fill & Outline > Text Fill > Transparency
  • range: 0-100

Default

ts
0

Inherited from

TableProps.transparency


underline?

optional underline?: object

Defined in: core-interfaces.ts:740

underline properties

  • PowerPoint: Font > Color & Underline > Underline Style/Underline Color

color?

optional color?: string

style?

optional style?: "none" | "dash" | "dashHeavy" | "dashLong" | "dashLongHeavy" | "dbl" | "dotDash" | "dotDashHeave" | "dotDotDash" | "dotDotDashHeavy" | "dotted" | "dottedHeavy" | "heavy" | "sng" | "wavy" | "wavyDbl" | "wavyHeavy"

Default

ts
(none)

Inherited from

TableProps.underline


valign?

optional valign?: VAlign

Defined in: core-interfaces.ts:765

vertical alignment

Default

ts
'top'

Inherited from

TableProps.valign


verbose?

optional verbose?: boolean

Defined in: core-interfaces.ts:1740

DEV TOOL: Verbose Mode (to console)

  • tell the library to provide an almost ridiculous amount of detail during auto-paging calculations

Default

ts
false // obviously

Inherited from

TableProps.verbose


w?

optional w?: Coord

Defined in: core-interfaces.ts:68

Width

  • inches or percentage

Examples

ts
10.25 // width in inches
ts
'75%' // width as percentage of slide size

Inherited from

TableProps.w


x?

optional x?: Coord

Defined in: core-interfaces.ts:47

Horizontal position

  • inches or percentage

Examples

ts
10.25 // position in inches
ts
'75%' // position as percentage of slide size

Inherited from

TableProps.x


y?

optional y?: Coord

Defined in: core-interfaces.ts:54

Vertical position

  • inches or percentage

Examples

ts
10.25 // position in inches
ts
'75%' // position as percentage of slide size

Inherited from

TableProps.y