# FSlideTableBuilder

> Language fallback: requested `zh-CN`; content is `en-US`.

- Human documentation: [https://docs.univer.ai/zh-CN/reference/facade/slide-table-builder](https://docs.univer.ai/zh-CN/reference/facade/slide-table-builder)

- Agent Markdown: [https://docs.univer.ai/zh-CN/reference/facade/slide-table-builder.md](https://docs.univer.ai/zh-CN/reference/facade/slide-table-builder.md)

- Requested language: `zh-CN`

- Content language: `en-US`

- Documentation version: `1.0.0-rc.0`

- Source: [facade/slide-table-builder.mdx](https://github.com/dream-num/documentation/blob/dev/content/reference/facade/slide-table-builder.mdx)

---

Builder for creating slide tables through the facade.

## Access

Access through:

* [`FSlideTable.toBuilder()`](https://docs.univer.ai/zh-CN/reference/facade/slide-table.md#tobuilder)
* [`FSlide.newTable()`](https://docs.univer.ai/zh-CN/reference/facade/slide.md#newtable)

## Example

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide
  .newTable()
  .setValues([
    ['Quarter', 'Owner', 'Status'],
    ['Q1', 'Sales', 'Done'],
  ])
  .setRows(3)
  .setColumns(4)
  .setColumnWidth(105)
  .setRowHeight(60)
  .setAbsolutePosition(80, 100)
  .setSize(420, 180)
  .build()
fSlide.insertTable(tableInfo)
```

## Setup

Register [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) or a preset that includes it. In plugin mode, import `@univerjs-pro/slides-table/facade`. Additional methods below require their listed plugin packages. See [Facade setup](https://docs.univer.ai/zh-CN/guides/slides/getting-started/facade.md).

## `@univerjs-pro/slides-table`

### `FSlideTableBuilder.build`

Build the table info used by `fSlide.insertTable()`.

```typescript
build(): ISlideTableBuilderInfo
```

**Returns**

The table resource and element data.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide
  .newTable()
  .setValues([
    ['Quarter', 'Owner', 'Status'],
    ['Q1', 'Sales', 'Done'],
  ])
  .setRows(3)
  .setColumns(4)
  .setColumnWidth(105)
  .setRowHeight(60)
  .setAbsolutePosition(80, 100)
  .setSize(420, 180)
  .build()
fSlide.insertTable(tableInfo)
```

**Types:** [`ISlideTableBuilderInfo`](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.element`

The table element data. It is optional when building a table snapshot, but required when building a table element.

```ts
element: Partial<ISlideTableElement>
```

**Types:** [`ISlideTableElement`](https://unpkg.com/@univerjs-pro/slides@1.0.0-rc.0/lib/types/slide.type.d.ts) · [`Partial`](https://unpkg.com/@typescript/typescript-darwin-arm64@7.0.2/lib/lib.es5.d.ts)

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setAbsolutePosition`

Set the table position by slide coordinates.

```typescript
setAbsolutePosition(left: number, top: number): this
```

**Parameters**

* `left` — Required. The x-coordinate of the table.
* `top` — Required. The y-coordinate of the table.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide.newTable().setRows(3).setColumns(4).setAbsolutePosition(80, 120).build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setCellStyles`

Set style for one cell in the initial table snapshot.

```typescript
setCellStyles(styles: Array<{ row: number; column: number; style: ISlideTableCellStyle; }>): this
```

**Parameters**

* `styles` — Required. An array of cell styles with their corresponding row and column indexes.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide
  .newTable()
  .setValues([
    ['Name', 'Status'],
    ['Facade', 'Ready'],
  ])
  .setCellStyles([{ row: 0, column: 0, style: { fill: { color: '#E8F1FF', alpha: 1 } } }])
  .build()
fSlide.insertTable(tableInfo)
```

**Types:** [`Array`](https://unpkg.com/@typescript/typescript-darwin-arm64@7.0.2/lib/lib.es5.d.ts) · [`ISlideTableCellStyle`](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/types.d.ts)

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setColumns`

Set the number of columns for the table. Default is 2.
If the table already has values or text data, their maximum will be used as the column count instead.

```typescript
setColumns(columns: number): this
```

**Parameters**

* `columns` — Required. The number of columns.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide.newTable().setRows(3).setColumns(4).build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setColumnWidth`

Set default column width for all created columns.

```typescript
setColumnWidth(width: number): this
```

**Parameters**

* `width` — Required. The column width.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide.newTable().setRows(3).setColumns(4).setColumnWidth(120).build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setCustom`

Set custom table metadata.

```typescript
setCustom(custom: Record<string, unknown> | null): this
```

**Parameters**

* `custom` — Required. The custom metadata.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide.newTable().setRows(3).setColumns(4).setCustom({ source: 'agent' }).build()
fSlide.insertTable(tableInfo)
```

**Types:** [`Record`](https://unpkg.com/@typescript/typescript-darwin-arm64@7.0.2/lib/lib.es5.d.ts)

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setDescription`

Set the table description.

```typescript
setDescription(description: string): this
```

**Parameters**

* `description` — Required. The table description.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide
  .newTable()
  .setRows(3)
  .setColumns(4)
  .setDescription('Quarterly status table')
  .build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setName`

Set the table name.

```typescript
setName(name: string): this
```

**Parameters**

* `name` — Required. The table name.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide.newTable().setRows(3).setColumns(4).setName('Status table').build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setOptions`

Set table style options such as first row or banded rows.

```typescript
setOptions(options: ISlideTableStyleOptions): this
```

**Parameters**

* `options` — Required. The table style options.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide
  .newTable()
  .setRows(4)
  .setColumns(2)
  .setOptions({
    firstRow: true,
    bandRow: true,
  })
  .build()
fSlide.insertTable(tableInfo)
```

**Types:** [`ISlideTableStyleOptions`](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/types.d.ts)

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setPlaceholder`

Set placeholder metadata on the table element.

```typescript
setPlaceholder(placeholder: ISlidePlaceholderData): this
```

**Parameters**

* `placeholder` — Required. The placeholder metadata.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide
  .newTable()
  .setRows(3)
  .setColumns(4)
  .setPlaceholder({
    id: 'body-1',
    type: univerAPI.Enum.SlidePlaceholderTypeEnum.Table,
  })
  .build()
fSlide.insertTable(tableInfo)
```

**Types:** [`ISlidePlaceholderData`](https://unpkg.com/@univerjs-pro/slides@1.0.0-rc.0/lib/types/slide.type.d.ts)

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setRichTextValues`

Sets initial table cells from values returned by `univerAPI.newRichText()`.

```typescript
setRichTextValues(values: RichTextValue[][]): this
```

**Parameters**

* `values` — Required. Two-dimensional rich-text values.

**Returns**

This builder for chaining.

**Examples**

```ts
const presentation = univerAPI.getActivePresentation()
if (!presentation) throw new Error('No active presentation')
const slide = presentation.getSlideByIndex(0)
const richText = univerAPI
  .newRichText()
  .align({
    horizontal: univerAPI.Enum.HorizontalAlign.CENTER,
    vertical: univerAPI.Enum.VerticalAlign.MIDDLE,
  })
  .text('Status: ')
  .bold('Ready')
const table = slide.insertTable(
  slide
    .newTable()
    .setRichTextValues([[richText]])
    .build(),
)
if (!table) throw new Error('Cannot insert rich-text slide table')
```

**Types:** [`RichTextValue`](https://unpkg.com/@univerjs/core@1.0.0-rc.0/lib/types/docs/data-model/rich-text-builder.d.ts)

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setRotation`

Set the table rotation.

```typescript
setRotation(rotation: number): this
```

**Parameters**

* `rotation` — Required. The rotation in degrees.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide.newTable().setRows(3).setColumns(4).setRotation(90).build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setRowHeight`

Set default row height for all created rows.

```typescript
setRowHeight(height: number): this
```

**Parameters**

* `height` — Required. The row height.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide.newTable().setRows(3).setColumns(4).setRowHeight(32).build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setRows`

Set the number of rows for the table. Default is 2.
If the table already has values or text data, their maximum will be used as the row count instead.

```typescript
setRows(rows: number): this
```

**Parameters**

* `rows` — Required. The number of rows.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide.newTable().setRows(3).setColumns(4).build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setSize`

Set the table size.

```typescript
setSize(width: number, height: number): this
```

**Parameters**

* `width` — Required. The table width.
* `height` — Required. The table height.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide.newTable().setRows(3).setColumns(4).setSize(480, 220).build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setStyleId`

Set the table theme style id. Built-in ids include:
`univerPrimaryPlainGrid`, `univerPrimaryHeader`, `univerPrimaryHeaderBandedRows`,
`univerNeutralPlainGrid`, `univerGreenHeaderBandedRows`, `univerPurpleStrongHeader`;
`univer{Neutral|Primary|Blue|Cyan|Green|Orange|Purple|Pink}LightPlainGrid`,
`univer{Neutral|Primary|Blue|Cyan|Green|Orange|Purple|Pink}LightHeader`,
`univer{Neutral|Primary|Blue|Cyan|Green|Orange|Purple|Pink}LightHeaderBandedRows`;
`univer{Neutral|Primary|Blue|Cyan|Green|Orange|Purple|Pink}MediumStrongHeader`,
`univer{Neutral|Primary|Blue|Cyan|Green|Orange|Purple|Pink}MediumFirstColumn`,
`univer{Neutral|Primary|Blue|Cyan|Green|Orange|Purple|Pink}MediumHeaderFirstColumn`;
`univer{Neutral|Primary|Blue|Cyan|Green|Orange|Purple|Pink}HorizontalLines`,
`univerPrimarySoftGrid`, and `univerNeutralSoftGrid`.

```typescript
setStyleId(styleId: string): this
```

**Parameters**

* `styleId` — Required. The table style id.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide
  .newTable()
  .setRows(3)
  .setColumns(4)
  .setStyleId('univerGreenMediumHeaderFirstColumn')
  .setOptions({
    firstRow: true,
    firstCol: true,
    bandRow: true,
  })
  .build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setTextData`

Set raw Univer document data for the table cells.

This is an advanced integration escape hatch. Application and agent code should prefer `setRichTextValues()`.

```typescript
setTextData(textData: IDocumentData[][]): this
```

**Parameters**

* `textData` — Required. Two-dimensional rich text document data.

**Returns**

This builder, for chaining.

**Examples**

```ts
// Advanced: preserve the exact document model while cloning imported table content.
const presentation = univerAPI.getActivePresentation()
if (!presentation) throw new Error('No active presentation')
const slide = presentation.getSlideByIndex(0)
const sourceTable = slide.getTableById('imported-table')
const importedTextData = sourceTable?.getCellTextData(0, 0)
if (!importedTextData) throw new Error('Imported cell data is unavailable')
const tableInfo = slide
  .newTable()
  .setTextData([[importedTextData]])
  .build()
slide.insertTable(tableInfo)
```

**Types:** [`IDocumentData`](https://docs.univer.ai/zh-CN/reference/types/document-data.md)

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.setValues`

Set plain text values for the table cells.

```typescript
setValues(values: string[][]): this
```

**Parameters**

* `values` — Required. Two-dimensional plain text values.

**Returns**

This builder, for chaining.

**Examples**

```ts
const fPresentation = univerAPI.getActivePresentation()
const fSlide = fPresentation.getSlideByIndex(0)

const tableInfo = fSlide
  .newTable()
  .setValues([
    ['Name', 'Status'],
    ['Facade', 'Ready'],
  ])
  .build()
fSlide.insertTable(tableInfo)
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.subUnitId`

```typescript
readonly subUnitId: string
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.table`

The table snapshot data.

```ts
table: Partial<ISlideTableSnapshot>
```

**Types:** [`ISlideTableSnapshot`](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/types.d.ts) · [`Partial`](https://unpkg.com/@typescript/typescript-darwin-arm64@7.0.2/lib/lib.es5.d.ts)

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)

### `FSlideTableBuilder.unitId`

```typescript
readonly unitId: string
```

**Package:** [`@univerjs-pro/slides-table`](https://docs.univer.ai/zh-CN/reference/packages/plugins/univerjs-pro/slides-table.md) · [Type definitions](https://unpkg.com/@univerjs-pro/slides-table@1.0.0-rc.0/lib/types/facade/f-slide-table-builder.d.ts)
