Word.Table class

Represents a table in a Word document.

Extends

Remarks

[ API set: WordApi 1.3 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/40-tables/table-cell-access.yaml

await Word.run(async (context) => {
  // Use a two-dimensional array to hold the initial table values.
  const data = [
    ["Tokyo", "Beijing", "Seattle"],
    ["Apple", "Orange", "Pineapple"]
  ];
  const table = context.document.body.insertTable(2, 3, "Start", data);
  table.styleBuiltIn = Word.BuiltInStyleName.gridTable5Dark_Accent2;
  table.styleFirstColumn = false;

  await context.sync();
});

Properties

alignment

Specifies the alignment of the table against the page column. The value can be 'Left', 'Centered', or 'Right'.

context

The request context associated with the object. This connects the add-in's process to the Office host application's process.

endnotes

Gets the collection of endnotes in the table.

fields

Gets the collection of field objects in the table.

font

Gets the font. Use this to get and set font name, size, color, and other properties.

footnotes

Gets the collection of footnotes in the table.

headerRowCount

Specifies the number of header rows.

horizontalAlignment

Specifies the horizontal alignment of every cell in the table. The value can be 'Left', 'Centered', 'Right', or 'Justified'.

isUniform

Indicates whether all of the table rows are uniform.

nestingLevel

Gets the nesting level of the table. Top-level tables have level 1.

parentBody

Gets the parent body of the table.

parentContentControl

Gets the content control that contains the table. Throws an ItemNotFound error if there isn't a parent content control.

parentContentControlOrNullObject

Gets the content control that contains the table. If there isn't a parent content control, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

parentTable

Gets the table that contains this table. Throws an ItemNotFound error if it isn't contained in a table.

parentTableCell

Gets the table cell that contains this table. Throws an ItemNotFound error if it isn't contained in a table cell.

parentTableCellOrNullObject

Gets the table cell that contains this table. If it isn't contained in a table cell, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

parentTableOrNullObject

Gets the table that contains this table. If it isn't contained in a table, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

rowCount

Gets the number of rows in the table.

rows

Gets all of the table rows.

shadingColor

Specifies the shading color. Color is specified in "#RRGGBB" format or by using the color name.

style

Specifies the style name for the table. Use this property for custom styles and localized style names. To use the built-in styles that are portable between locales, see the "styleBuiltIn" property.

styleBandedColumns

Specifies whether the table has banded columns.

styleBandedRows

Specifies whether the table has banded rows.

styleBuiltIn

Specifies the built-in style name for the table. Use this property for built-in styles that are portable between locales. To use custom styles or localized style names, see the "style" property.

styleFirstColumn

Specifies whether the table has a first column with a special style.

styleLastColumn

Specifies whether the table has a last column with a special style.

styleTotalRow

Specifies whether the table has a total (last) row with a special style.

tables

Gets the child tables nested one level deeper.

values

Specifies the text values in the table, as a 2D JavaScript array.

verticalAlignment

Specifies the vertical alignment of every cell in the table. The value can be 'Top', 'Center', or 'Bottom'.

width

Specifies the width of the table in points.

Methods

addColumns(insertLocation, columnCount, values)

Adds columns to the start or end of the table, using the first or last existing column as a template. This is applicable to uniform tables. The string values, if specified, are set in the newly inserted rows.

addRows(insertLocation, rowCount, values)

Adds rows to the start or end of the table, using the first or last existing row as a template. The string values, if specified, are set in the newly inserted rows.

autoFitWindow()

Autofits the table columns to the width of the window.

clear()

Clears the contents of the table.

delete()

Deletes the entire table.

deleteColumns(columnIndex, columnCount)

Deletes specific columns. This is applicable to uniform tables.

deleteRows(rowIndex, rowCount)

Deletes specific rows.

distributeColumns()

Distributes the column widths evenly. This is applicable to uniform tables.

getBorder(borderLocation)

Gets the border style for the specified border.

getBorder(borderLocationString)

Gets the border style for the specified border.

getCell(rowIndex, cellIndex)

Gets the table cell at a specified row and column. Throws an ItemNotFound error if the specified table cell doesn't exist.

getCellOrNullObject(rowIndex, cellIndex)

Gets the table cell at a specified row and column. If the specified table cell doesn't exist, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

getCellPadding(cellPaddingLocation)

Gets cell padding in points.

getCellPadding(cellPaddingLocationString)

Gets cell padding in points.

getNext()

Gets the next table. Throws an ItemNotFound error if this table is the last one.

getNextOrNullObject()

Gets the next table. If this table is the last one, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

getParagraphAfter()

Gets the paragraph after the table. Throws an ItemNotFound error if there isn't a paragraph after the table.

getParagraphAfterOrNullObject()

Gets the paragraph after the table. If there isn't a paragraph after the table, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

getParagraphBefore()

Gets the paragraph before the table. Throws an ItemNotFound error if there isn't a paragraph before the table.

getParagraphBeforeOrNullObject()

Gets the paragraph before the table. If there isn't a paragraph before the table, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

getRange(rangeLocation)

Gets the range that contains this table, or the range at the start or end of the table.

insertContentControl()

Inserts a content control on the table.

insertParagraph(paragraphText, insertLocation)

Inserts a paragraph at the specified location.

insertTable(rowCount, columnCount, insertLocation, values)

Inserts a table with the specified number of rows and columns.

load(options)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(propertyNames)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(propertyNamesAndPaths)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

mergeCells(topRow, firstCell, bottomRow, lastCell)

Merges the cells bounded inclusively by a first and last cell.

search(searchText, searchOptions)

Performs a search with the specified SearchOptions on the scope of the table object. The search results are a collection of range objects.

select(selectionMode)

Selects the table, or the position at the start or end of the table, and navigates the Word UI to it.

select(selectionModeString)

Selects the table, or the position at the start or end of the table, and navigates the Word UI to it.

set(properties, options)

Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type.

set(properties)

Sets multiple properties on the object at the same time, based on an existing loaded object.

setCellPadding(cellPaddingLocation, cellPadding)

Sets cell padding in points.

setCellPadding(cellPaddingLocationString, cellPadding)

Sets cell padding in points.

toJSON()

Overrides the JavaScript toJSON() method in order to provide more useful output when an API object is passed to JSON.stringify(). (JSON.stringify, in turn, calls the toJSON method of the object that is passed to it.) Whereas the original Word.Table object is an API object, the toJSON method returns a plain JavaScript object (typed as Word.Interfaces.TableData) that contains shallow copies of any loaded child properties from the original object.

track()

Track the object for automatic adjustment based on surrounding changes in the document. This call is a shorthand for context.trackedObjects.add(thisObject). If you're using this object across .sync calls and outside the sequential execution of a ".run" batch, and get an "InvalidObjectPath" error when setting a property or invoking a method on the object, you need to add the object to the tracked object collection when the object was first created. If this object is part of a collection, you should also track the parent collection.

untrack()

Release the memory associated with this object, if it has previously been tracked. This call is shorthand for context.trackedObjects.remove(thisObject). Having many tracked objects slows down the host application, so please remember to free any objects you add, once you're done using them. You'll need to call context.sync() before the memory release takes effect.

Property Details

alignment

Specifies the alignment of the table against the page column. The value can be 'Left', 'Centered', or 'Right'.

alignment: Word.Alignment | "Mixed" | "Unknown" | "Left" | "Centered" | "Right" | "Justified";

Property Value

Word.Alignment | "Mixed" | "Unknown" | "Left" | "Centered" | "Right" | "Justified"

Remarks

[ API set: WordApi 1.3 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/40-tables/manage-formatting.yaml

// Gets alignment details about the first table in the document.
await Word.run(async (context) => {
  const firstTable = context.document.body.tables.getFirst();
  firstTable.load(["alignment", "horizontalAlignment", "verticalAlignment"]);
  await context.sync();

  console.log(`Details about the alignment of the first table:`);
  console.log(`- Alignment of the table within the containing page column: ${firstTable.alignment}`);
  console.log(`- Horizontal alignment of every cell in the table: ${firstTable.horizontalAlignment}`);
  console.log(`- Vertical alignment of every cell in the table: ${firstTable.verticalAlignment}`);
});

context

The request context associated with the object. This connects the add-in's process to the Office host application's process.

context: RequestContext;

Property Value

endnotes

Gets the collection of endnotes in the table.

readonly endnotes: Word.NoteItemCollection;

Property Value

Remarks

[ API set: WordApi 1.5 ]

fields

Gets the collection of field objects in the table.

readonly fields: Word.FieldCollection;

Property Value

Remarks

[ API set: WordApi 1.4 ]

font

Gets the font. Use this to get and set font name, size, color, and other properties.

readonly font: Word.Font;

Property Value

Remarks

[ API set: WordApi 1.3 ]

footnotes

Gets the collection of footnotes in the table.

readonly footnotes: Word.NoteItemCollection;

Property Value

Remarks

[ API set: WordApi 1.5 ]

headerRowCount

Specifies the number of header rows.

headerRowCount: number;

Property Value

number

Remarks

[ API set: WordApi 1.3 ]

horizontalAlignment

Specifies the horizontal alignment of every cell in the table. The value can be 'Left', 'Centered', 'Right', or 'Justified'.

horizontalAlignment: Word.Alignment | "Mixed" | "Unknown" | "Left" | "Centered" | "Right" | "Justified";

Property Value

Word.Alignment | "Mixed" | "Unknown" | "Left" | "Centered" | "Right" | "Justified"

Remarks

[ API set: WordApi 1.3 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/40-tables/manage-formatting.yaml

// Gets alignment details about the first table in the document.
await Word.run(async (context) => {
  const firstTable = context.document.body.tables.getFirst();
  firstTable.load(["alignment", "horizontalAlignment", "verticalAlignment"]);
  await context.sync();

  console.log(`Details about the alignment of the first table:`);
  console.log(`- Alignment of the table within the containing page column: ${firstTable.alignment}`);
  console.log(`- Horizontal alignment of every cell in the table: ${firstTable.horizontalAlignment}`);
  console.log(`- Vertical alignment of every cell in the table: ${firstTable.verticalAlignment}`);
});

isUniform

Indicates whether all of the table rows are uniform.

readonly isUniform: boolean;

Property Value

boolean

Remarks

[ API set: WordApi 1.3 ]

nestingLevel

Gets the nesting level of the table. Top-level tables have level 1.

readonly nestingLevel: number;

Property Value

number

Remarks

[ API set: WordApi 1.3 ]

parentBody

Gets the parent body of the table.

readonly parentBody: Word.Body;

Property Value

Remarks

[ API set: WordApi 1.3 ]

parentContentControl

Gets the content control that contains the table. Throws an ItemNotFound error if there isn't a parent content control.

readonly parentContentControl: Word.ContentControl;

Property Value

Remarks

[ API set: WordApi 1.3 ]

parentContentControlOrNullObject

Gets the content control that contains the table. If there isn't a parent content control, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

readonly parentContentControlOrNullObject: Word.ContentControl;

Property Value

Remarks

[ API set: WordApi 1.3 ]

parentTable

Gets the table that contains this table. Throws an ItemNotFound error if it isn't contained in a table.

readonly parentTable: Word.Table;

Property Value

Remarks

[ API set: WordApi 1.3 ]

parentTableCell

Gets the table cell that contains this table. Throws an ItemNotFound error if it isn't contained in a table cell.

readonly parentTableCell: Word.TableCell;

Property Value

Remarks

[ API set: WordApi 1.3 ]

parentTableCellOrNullObject

Gets the table cell that contains this table. If it isn't contained in a table cell, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

readonly parentTableCellOrNullObject: Word.TableCell;

Property Value

Remarks

[ API set: WordApi 1.3 ]

parentTableOrNullObject

Gets the table that contains this table. If it isn't contained in a table, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

readonly parentTableOrNullObject: Word.Table;

Property Value

Remarks

[ API set: WordApi 1.3 ]

rowCount

Gets the number of rows in the table.

readonly rowCount: number;

Property Value

number

Remarks

[ API set: WordApi 1.3 ]

rows

Gets all of the table rows.

readonly rows: Word.TableRowCollection;

Property Value

Remarks

[ API set: WordApi 1.3 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/40-tables/manage-formatting.yaml

// Gets content alignment details about the first row of the first table in the document.
await Word.run(async (context) => {
  const firstTable = context.document.body.tables.getFirst();
  const firstTableRow = firstTable.rows.getFirst();
  firstTableRow.load(["horizontalAlignment", "verticalAlignment"]);
  await context.sync();

  console.log(`Details about the alignment of the first table's first row:`);
  console.log(`- Horizontal alignment of every cell in the row: ${firstTableRow.horizontalAlignment}`);
  console.log(`- Vertical alignment of every cell in the row: ${firstTableRow.verticalAlignment}`);
});

shadingColor

Specifies the shading color. Color is specified in "#RRGGBB" format or by using the color name.

shadingColor: string;

Property Value

string

Remarks

[ API set: WordApi 1.3 ]

style

Specifies the style name for the table. Use this property for custom styles and localized style names. To use the built-in styles that are portable between locales, see the "styleBuiltIn" property.

style: string;

Property Value

string

Remarks

[ API set: WordApi 1.3 ]

styleBandedColumns

Specifies whether the table has banded columns.

styleBandedColumns: boolean;

Property Value

boolean

Remarks

[ API set: WordApi 1.3 ]

styleBandedRows

Specifies whether the table has banded rows.

styleBandedRows: boolean;

Property Value

boolean

Remarks

[ API set: WordApi 1.3 ]

styleBuiltIn

Specifies the built-in style name for the table. Use this property for built-in styles that are portable between locales. To use custom styles or localized style names, see the "style" property.

styleBuiltIn: Word.BuiltInStyleName | "Other" | "Normal" | "Heading1" | "Heading2" | "Heading3" | "Heading4" | "Heading5" | "Heading6" | "Heading7" | "Heading8" | "Heading9" | "Toc1" | "Toc2" | "Toc3" | "Toc4" | "Toc5" | "Toc6" | "Toc7" | "Toc8" | "Toc9" | "FootnoteText" | "Header" | "Footer" | "Caption" | "FootnoteReference" | "EndnoteReference" | "EndnoteText" | "Title" | "Subtitle" | "Hyperlink" | "Strong" | "Emphasis" | "NoSpacing" | "ListParagraph" | "Quote" | "IntenseQuote" | "SubtleEmphasis" | "IntenseEmphasis" | "SubtleReference" | "IntenseReference" | "BookTitle" | "Bibliography" | "TocHeading" | "TableGrid" | "PlainTable1" | "PlainTable2" | "PlainTable3" | "PlainTable4" | "PlainTable5" | "TableGridLight" | "GridTable1Light" | "GridTable1Light_Accent1" | "GridTable1Light_Accent2" | "GridTable1Light_Accent3" | "GridTable1Light_Accent4" | "GridTable1Light_Accent5" | "GridTable1Light_Accent6" | "GridTable2" | "GridTable2_Accent1" | "GridTable2_Accent2" | "GridTable2_Accent3" | "GridTable2_Accent4" | "GridTable2_Accent5" | "GridTable2_Accent6" | "GridTable3" | "GridTable3_Accent1" | "GridTable3_Accent2" | "GridTable3_Accent3" | "GridTable3_Accent4" | "GridTable3_Accent5" | "GridTable3_Accent6" | "GridTable4" | "GridTable4_Accent1" | "GridTable4_Accent2" | "GridTable4_Accent3" | "GridTable4_Accent4" | "GridTable4_Accent5" | "GridTable4_Accent6" | "GridTable5Dark" | "GridTable5Dark_Accent1" | "GridTable5Dark_Accent2" | "GridTable5Dark_Accent3" | "GridTable5Dark_Accent4" | "GridTable5Dark_Accent5" | "GridTable5Dark_Accent6" | "GridTable6Colorful" | "GridTable6Colorful_Accent1" | "GridTable6Colorful_Accent2" | "GridTable6Colorful_Accent3" | "GridTable6Colorful_Accent4" | "GridTable6Colorful_Accent5" | "GridTable6Colorful_Accent6" | "GridTable7Colorful" | "GridTable7Colorful_Accent1" | "GridTable7Colorful_Accent2" | "GridTable7Colorful_Accent3" | "GridTable7Colorful_Accent4" | "GridTable7Colorful_Accent5" | "GridTable7Colorful_Accent6" | "ListTable1Light" | "ListTable1Light_Accent1" | "ListTable1Light_Accent2" | "ListTable1Light_Accent3" | "ListTable1Light_Accent4" | "ListTable1Light_Accent5" | "ListTable1Light_Accent6" | "ListTable2" | "ListTable2_Accent1" | "ListTable2_Accent2" | "ListTable2_Accent3" | "ListTable2_Accent4" | "ListTable2_Accent5" | "ListTable2_Accent6" | "ListTable3" | "ListTable3_Accent1" | "ListTable3_Accent2" | "ListTable3_Accent3" | "ListTable3_Accent4" | "ListTable3_Accent5" | "ListTable3_Accent6" | "ListTable4" | "ListTable4_Accent1" | "ListTable4_Accent2" | "ListTable4_Accent3" | "ListTable4_Accent4" | "ListTable4_Accent5" | "ListTable4_Accent6" | "ListTable5Dark" | "ListTable5Dark_Accent1" | "ListTable5Dark_Accent2" | "ListTable5Dark_Accent3" | "ListTable5Dark_Accent4" | "ListTable5Dark_Accent5" | "ListTable5Dark_Accent6" | "ListTable6Colorful" | "ListTable6Colorful_Accent1" | "ListTable6Colorful_Accent2" | "ListTable6Colorful_Accent3" | "ListTable6Colorful_Accent4" | "ListTable6Colorful_Accent5" | "ListTable6Colorful_Accent6" | "ListTable7Colorful" | "ListTable7Colorful_Accent1" | "ListTable7Colorful_Accent2" | "ListTable7Colorful_Accent3" | "ListTable7Colorful_Accent4" | "ListTable7Colorful_Accent5" | "ListTable7Colorful_Accent6";

Property Value

Word.BuiltInStyleName | "Other" | "Normal" | "Heading1" | "Heading2" | "Heading3" | "Heading4" | "Heading5" | "Heading6" | "Heading7" | "Heading8" | "Heading9" | "Toc1" | "Toc2" | "Toc3" | "Toc4" | "Toc5" | "Toc6" | "Toc7" | "Toc8" | "Toc9" | "FootnoteText" | "Header" | "Footer" | "Caption" | "FootnoteReference" | "EndnoteReference" | "EndnoteText" | "Title" | "Subtitle" | "Hyperlink" | "Strong" | "Emphasis" | "NoSpacing" | "ListParagraph" | "Quote" | "IntenseQuote" | "SubtleEmphasis" | "IntenseEmphasis" | "SubtleReference" | "IntenseReference" | "BookTitle" | "Bibliography" | "TocHeading" | "TableGrid" | "PlainTable1" | "PlainTable2" | "PlainTable3" | "PlainTable4" | "PlainTable5" | "TableGridLight" | "GridTable1Light" | "GridTable1Light_Accent1" | "GridTable1Light_Accent2" | "GridTable1Light_Accent3" | "GridTable1Light_Accent4" | "GridTable1Light_Accent5" | "GridTable1Light_Accent6" | "GridTable2" | "GridTable2_Accent1" | "GridTable2_Accent2" | "GridTable2_Accent3" | "GridTable2_Accent4" | "GridTable2_Accent5" | "GridTable2_Accent6" | "GridTable3" | "GridTable3_Accent1" | "GridTable3_Accent2" | "GridTable3_Accent3" | "GridTable3_Accent4" | "GridTable3_Accent5" | "GridTable3_Accent6" | "GridTable4" | "GridTable4_Accent1" | "GridTable4_Accent2" | "GridTable4_Accent3" | "GridTable4_Accent4" | "GridTable4_Accent5" | "GridTable4_Accent6" | "GridTable5Dark" | "GridTable5Dark_Accent1" | "GridTable5Dark_Accent2" | "GridTable5Dark_Accent3" | "GridTable5Dark_Accent4" | "GridTable5Dark_Accent5" | "GridTable5Dark_Accent6" | "GridTable6Colorful" | "GridTable6Colorful_Accent1" | "GridTable6Colorful_Accent2" | "GridTable6Colorful_Accent3" | "GridTable6Colorful_Accent4" | "GridTable6Colorful_Accent5" | "GridTable6Colorful_Accent6" | "GridTable7Colorful" | "GridTable7Colorful_Accent1" | "GridTable7Colorful_Accent2" | "GridTable7Colorful_Accent3" | "GridTable7Colorful_Accent4" | "GridTable7Colorful_Accent5" | "GridTable7Colorful_Accent6" | "ListTable1Light" | "ListTable1Light_Accent1" | "ListTable1Light_Accent2" | "ListTable1Light_Accent3" | "ListTable1Light_Accent4" | "ListTable1Light_Accent5" | "ListTable1Light_Accent6" | "ListTable2" | "ListTable2_Accent1" | "ListTable2_Accent2" | "ListTable2_Accent3" | "ListTable2_Accent4" | "ListTable2_Accent5" | "ListTable2_Accent6" | "ListTable3" | "ListTable3_Accent1" | "ListTable3_Accent2" | "ListTable3_Accent3" | "ListTable3_Accent4" | "ListTable3_Accent5" | "ListTable3_Accent6" | "ListTable4" | "ListTable4_Accent1" | "ListTable4_Accent2" | "ListTable4_Accent3" | "ListTable4_Accent4" | "ListTable4_Accent5" | "ListTable4_Accent6" | "ListTable5Dark" | "ListTable5Dark_Accent1" | "ListTable5Dark_Accent2" | "ListTable5Dark_Accent3" | "ListTable5Dark_Accent4" | "ListTable5Dark_Accent5" | "ListTable5Dark_Accent6" | "ListTable6Colorful" | "ListTable6Colorful_Accent1" | "ListTable6Colorful_Accent2" | "ListTable6Colorful_Accent3" | "ListTable6Colorful_Accent4" | "ListTable6Colorful_Accent5" | "ListTable6Colorful_Accent6" | "ListTable7Colorful" | "ListTable7Colorful_Accent1" | "ListTable7Colorful_Accent2" | "ListTable7Colorful_Accent3" | "ListTable7Colorful_Accent4" | "ListTable7Colorful_Accent5" | "ListTable7Colorful_Accent6"

Remarks

[ API set: WordApi 1.3 ]

styleFirstColumn

Specifies whether the table has a first column with a special style.

styleFirstColumn: boolean;

Property Value

boolean

Remarks

[ API set: WordApi 1.3 ]

styleLastColumn

Specifies whether the table has a last column with a special style.

styleLastColumn: boolean;

Property Value

boolean

Remarks

[ API set: WordApi 1.3 ]

styleTotalRow

Specifies whether the table has a total (last) row with a special style.

styleTotalRow: boolean;

Property Value

boolean

Remarks

[ API set: WordApi 1.3 ]

tables

Gets the child tables nested one level deeper.

readonly tables: Word.TableCollection;

Property Value

Remarks

[ API set: WordApi 1.3 ]

values

Specifies the text values in the table, as a 2D JavaScript array.

values: string[][];

Property Value

string[][]

Remarks

[ API set: WordApi 1.3 ]

verticalAlignment

Specifies the vertical alignment of every cell in the table. The value can be 'Top', 'Center', or 'Bottom'.

verticalAlignment: Word.VerticalAlignment | "Mixed" | "Top" | "Center" | "Bottom";

Property Value

Word.VerticalAlignment | "Mixed" | "Top" | "Center" | "Bottom"

Remarks

[ API set: WordApi 1.3 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/40-tables/manage-formatting.yaml

// Gets alignment details about the first table in the document.
await Word.run(async (context) => {
  const firstTable = context.document.body.tables.getFirst();
  firstTable.load(["alignment", "horizontalAlignment", "verticalAlignment"]);
  await context.sync();

  console.log(`Details about the alignment of the first table:`);
  console.log(`- Alignment of the table within the containing page column: ${firstTable.alignment}`);
  console.log(`- Horizontal alignment of every cell in the table: ${firstTable.horizontalAlignment}`);
  console.log(`- Vertical alignment of every cell in the table: ${firstTable.verticalAlignment}`);
});

width

Specifies the width of the table in points.

width: number;

Property Value

number

Remarks

[ API set: WordApi 1.3 ]

Method Details

addColumns(insertLocation, columnCount, values)

Adds columns to the start or end of the table, using the first or last existing column as a template. This is applicable to uniform tables. The string values, if specified, are set in the newly inserted rows.

addColumns(insertLocation: Word.InsertLocation.start | Word.InsertLocation.end | "Start" | "End", columnCount: number, values?: string[][]): void;

Parameters

insertLocation

start | end | "Start" | "End"

Required. It must be 'Start' or 'End', corresponding to the appropriate side of the table.

columnCount

number

Required. Number of columns to add.

values

string[][]

Optional 2D array. Cells are filled if the corresponding strings are specified in the array.

Returns

void

Remarks

[ API set: WordApi 1.3 ]

addRows(insertLocation, rowCount, values)

Adds rows to the start or end of the table, using the first or last existing row as a template. The string values, if specified, are set in the newly inserted rows.

addRows(insertLocation: Word.InsertLocation.start | Word.InsertLocation.end | "Start" | "End", rowCount: number, values?: string[][]): Word.TableRowCollection;

Parameters

insertLocation

start | end | "Start" | "End"

Required. It must be 'Start' or 'End'.

rowCount

number

Required. Number of rows to add.

values

string[][]

Optional 2D array. Cells are filled if the corresponding strings are specified in the array.

Returns

Remarks

[ API set: WordApi 1.3 ]

autoFitWindow()

Autofits the table columns to the width of the window.

autoFitWindow(): void;

Returns

void

Remarks

[ API set: WordApi 1.3 ]

clear()

Clears the contents of the table.

clear(): void;

Returns

void

Remarks

[ API set: WordApi 1.3 ]

delete()

Deletes the entire table.

delete(): void;

Returns

void

Remarks

[ API set: WordApi 1.3 ]

deleteColumns(columnIndex, columnCount)

Deletes specific columns. This is applicable to uniform tables.

deleteColumns(columnIndex: number, columnCount?: number): void;

Parameters

columnIndex

number

Required. The first column to delete.

columnCount

number

Optional. The number of columns to delete. Default 1.

Returns

void

Remarks

[ API set: WordApi 1.3 ]

deleteRows(rowIndex, rowCount)

Deletes specific rows.

deleteRows(rowIndex: number, rowCount?: number): void;

Parameters

rowIndex

number

Required. The first row to delete.

rowCount

number

Optional. The number of rows to delete. Default 1.

Returns

void

Remarks

[ API set: WordApi 1.3 ]

distributeColumns()

Distributes the column widths evenly. This is applicable to uniform tables.

distributeColumns(): void;

Returns

void

Remarks

[ API set: WordApi 1.3 ]

getBorder(borderLocation)

Gets the border style for the specified border.

getBorder(borderLocation: Word.BorderLocation): Word.TableBorder;

Parameters

borderLocation
Word.BorderLocation

Required. The border location.

Returns

Remarks

[ API set: WordApi 1.3 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/40-tables/manage-formatting.yaml

// Gets border details about the first table in the document.
await Word.run(async (context) => {
  const firstTable = context.document.body.tables.getFirst();
  const borderLocation = Word.BorderLocation.top;
  const border = firstTable.getBorder(borderLocation);
  border.load(["type", "color", "width"]);
  await context.sync();

  console.log(`Details about the ${borderLocation} border of the first table:`);
  console.log(`- Color: ${border.color}`);
  console.log(`- Type: ${border.type}`);
  console.log(`- Width: ${border.width} points`);
});

getBorder(borderLocationString)

Gets the border style for the specified border.

getBorder(borderLocationString: "Top" | "Left" | "Bottom" | "Right" | "InsideHorizontal" | "InsideVertical" | "Inside" | "Outside" | "All"): Word.TableBorder;

Parameters

borderLocationString

"Top" | "Left" | "Bottom" | "Right" | "InsideHorizontal" | "InsideVertical" | "Inside" | "Outside" | "All"

Required. The border location.

Returns

Remarks

[ API set: WordApi 1.3 ]

getCell(rowIndex, cellIndex)

Gets the table cell at a specified row and column. Throws an ItemNotFound error if the specified table cell doesn't exist.

getCell(rowIndex: number, cellIndex: number): Word.TableCell;

Parameters

rowIndex

number

Required. The index of the row.

cellIndex

number

Required. The index of the cell in the row.

Returns

Remarks

[ API set: WordApi 1.3 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/40-tables/table-cell-access.yaml

// Gets the content of the first cell in the first table.
await Word.run(async (context) => {
  const firstCell = context.document.body.tables.getFirst().getCell(0, 0).body;
  firstCell.load("text");

  await context.sync();
  console.log("First cell's text is: " + firstCell.text);
});

getCellOrNullObject(rowIndex, cellIndex)

Gets the table cell at a specified row and column. If the specified table cell doesn't exist, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

getCellOrNullObject(rowIndex: number, cellIndex: number): Word.TableCell;

Parameters

rowIndex

number

Required. The index of the row.

cellIndex

number

Required. The index of the cell in the row.

Returns

Remarks

[ API set: WordApi 1.3 ]

getCellPadding(cellPaddingLocation)

Gets cell padding in points.

getCellPadding(cellPaddingLocation: Word.CellPaddingLocation): OfficeExtension.ClientResult<number>;

Parameters

cellPaddingLocation
Word.CellPaddingLocation

Required. The cell padding location must be 'Top', 'Left', 'Bottom', or 'Right'.

Returns

Remarks

[ API set: WordApi 1.3 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/40-tables/manage-formatting.yaml

// Gets cell padding details about the first table in the document.
await Word.run(async (context) => {
  const firstTable = context.document.body.tables.getFirst();
  const cellPaddingLocation = Word.CellPaddingLocation.right;
  const cellPadding = firstTable.getCellPadding(cellPaddingLocation);
  await context.sync();

  console.log(
    `Cell padding details about the ${cellPaddingLocation} border of the first table: ${cellPadding.value} points`
  );
});

getCellPadding(cellPaddingLocationString)

Gets cell padding in points.

getCellPadding(cellPaddingLocationString: "Top" | "Left" | "Bottom" | "Right"): OfficeExtension.ClientResult<number>;

Parameters

cellPaddingLocationString

"Top" | "Left" | "Bottom" | "Right"

Required. The cell padding location must be 'Top', 'Left', 'Bottom', or 'Right'.

Returns

Remarks

[ API set: WordApi 1.3 ]

getNext()

Gets the next table. Throws an ItemNotFound error if this table is the last one.

getNext(): Word.Table;

Returns

Remarks

[ API set: WordApi 1.3 ]

getNextOrNullObject()

Gets the next table. If this table is the last one, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

getNextOrNullObject(): Word.Table;

Returns

Remarks

[ API set: WordApi 1.3 ]

getParagraphAfter()

Gets the paragraph after the table. Throws an ItemNotFound error if there isn't a paragraph after the table.

getParagraphAfter(): Word.Paragraph;

Returns

Remarks

[ API set: WordApi 1.3 ]

getParagraphAfterOrNullObject()

Gets the paragraph after the table. If there isn't a paragraph after the table, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

getParagraphAfterOrNullObject(): Word.Paragraph;

Returns

Remarks

[ API set: WordApi 1.3 ]

getParagraphBefore()

Gets the paragraph before the table. Throws an ItemNotFound error if there isn't a paragraph before the table.

getParagraphBefore(): Word.Paragraph;

Returns

Remarks

[ API set: WordApi 1.3 ]

getParagraphBeforeOrNullObject()

Gets the paragraph before the table. If there isn't a paragraph before the table, then this method will return an object with its isNullObject property set to true. For further information, see *OrNullObject methods and properties.

getParagraphBeforeOrNullObject(): Word.Paragraph;

Returns

Remarks

[ API set: WordApi 1.3 ]

getRange(rangeLocation)

Gets the range that contains this table, or the range at the start or end of the table.

getRange(rangeLocation?: Word.RangeLocation.whole | Word.RangeLocation.start | Word.RangeLocation.end | Word.RangeLocation.after | "Whole" | "Start" | "End" | "After"): Word.Range;

Parameters

rangeLocation

whole | start | end | after | "Whole" | "Start" | "End" | "After"

Optional. The range location must be 'Whole', 'Start', 'End', or 'After'.

Returns

Remarks

[ API set: WordApi 1.3 ]

insertContentControl()

Inserts a content control on the table.

insertContentControl(): Word.ContentControl;

Returns

Remarks

[ API set: WordApi 1.3 ]

insertParagraph(paragraphText, insertLocation)

Inserts a paragraph at the specified location.

insertParagraph(paragraphText: string, insertLocation: Word.InsertLocation.before | Word.InsertLocation.after | "Before" | "After"): Word.Paragraph;

Parameters

paragraphText

string

Required. The paragraph text to be inserted.

insertLocation

before | after | "Before" | "After"

Required. The value must be 'Before' or 'After'.

Returns

Remarks

[ API set: WordApi 1.3 ]

insertTable(rowCount, columnCount, insertLocation, values)

Inserts a table with the specified number of rows and columns.

insertTable(rowCount: number, columnCount: number, insertLocation: Word.InsertLocation.before | Word.InsertLocation.after | "Before" | "After", values?: string[][]): Word.Table;

Parameters

rowCount

number

Required. The number of rows in the table.

columnCount

number

Required. The number of columns in the table.

insertLocation

before | after | "Before" | "After"

Required. The value must be 'Before' or 'After'.

values

string[][]

Optional 2D array. Cells are filled if the corresponding strings are specified in the array.

Returns

Remarks

[ API set: WordApi 1.3 ]

load(options)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(options?: Word.Interfaces.TableLoadOptions): Word.Table;

Parameters

options
Word.Interfaces.TableLoadOptions

Provides options for which properties of the object to load.

Returns

load(propertyNames)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(propertyNames?: string | string[]): Word.Table;

Parameters

propertyNames

string | string[]

A comma-delimited string or an array of strings that specify the properties to load.

Returns

load(propertyNamesAndPaths)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): Word.Table;

Parameters

propertyNamesAndPaths

{ select?: string; expand?: string; }

propertyNamesAndPaths.select is a comma-delimited string that specifies the properties to load, and propertyNamesAndPaths.expand is a comma-delimited string that specifies the navigation properties to load.

Returns

mergeCells(topRow, firstCell, bottomRow, lastCell)

Merges the cells bounded inclusively by a first and last cell.

mergeCells(topRow: number, firstCell: number, bottomRow: number, lastCell: number): Word.TableCell;

Parameters

topRow

number

Required. The row of the first cell

firstCell

number

Required. The index of the first cell in its row

bottomRow

number

Required. The row of the last cell

lastCell

number

Required. The index of the last cell in its row

Returns

Remarks

[ API set: WordApi 1.4 ]

search(searchText, searchOptions)

Performs a search with the specified SearchOptions on the scope of the table object. The search results are a collection of range objects.

search(searchText: string, searchOptions?: Word.SearchOptions | {
            ignorePunct?: boolean;
            ignoreSpace?: boolean;
            matchCase?: boolean;
            matchPrefix?: boolean;
            matchSuffix?: boolean;
            matchWholeWord?: boolean;
            matchWildcards?: boolean;
        }): Word.RangeCollection;

Parameters

searchText

string

Required. The search text.

searchOptions

Word.SearchOptions | { ignorePunct?: boolean; ignoreSpace?: boolean; matchCase?: boolean; matchPrefix?: boolean; matchSuffix?: boolean; matchWholeWord?: boolean; matchWildcards?: boolean; }

Optional. Options for the search.

Returns

Remarks

[ API set: WordApi 1.3 ]

select(selectionMode)

Selects the table, or the position at the start or end of the table, and navigates the Word UI to it.

select(selectionMode?: Word.SelectionMode): void;

Parameters

selectionMode
Word.SelectionMode

Optional. The selection mode must be 'Select', 'Start', or 'End'. 'Select' is the default.

Returns

void

Remarks

[ API set: WordApi 1.3 ]

select(selectionModeString)

Selects the table, or the position at the start or end of the table, and navigates the Word UI to it.

select(selectionModeString?: "Select" | "Start" | "End"): void;

Parameters

selectionModeString

"Select" | "Start" | "End"

Optional. The selection mode must be 'Select', 'Start', or 'End'. 'Select' is the default.

Returns

void

Remarks

[ API set: WordApi 1.3 ]

set(properties, options)

Sets multiple properties of an object at the same time. You can pass either a plain object with the appropriate properties, or another API object of the same type.

set(properties: Interfaces.TableUpdateData, options?: OfficeExtension.UpdateOptions): void;

Parameters

properties
Word.Interfaces.TableUpdateData

A JavaScript object with properties that are structured isomorphically to the properties of the object on which the method is called.

options
OfficeExtension.UpdateOptions

Provides an option to suppress errors if the properties object tries to set any read-only properties.

Returns

void

set(properties)

Sets multiple properties on the object at the same time, based on an existing loaded object.

set(properties: Word.Table): void;

Parameters

properties
Word.Table

Returns

void

setCellPadding(cellPaddingLocation, cellPadding)

Sets cell padding in points.

setCellPadding(cellPaddingLocation: Word.CellPaddingLocation, cellPadding: number): void;

Parameters

cellPaddingLocation
Word.CellPaddingLocation

Required. The cell padding location must be 'Top', 'Left', 'Bottom', or 'Right'.

cellPadding

number

Required. The cell padding.

Returns

void

Remarks

[ API set: WordApi 1.3 ]

setCellPadding(cellPaddingLocationString, cellPadding)

Sets cell padding in points.

setCellPadding(cellPaddingLocationString: "Top" | "Left" | "Bottom" | "Right", cellPadding: number): void;

Parameters

cellPaddingLocationString

"Top" | "Left" | "Bottom" | "Right"

Required. The cell padding location must be 'Top', 'Left', 'Bottom', or 'Right'.

cellPadding

number

Required. The cell padding.

Returns

void

Remarks

[ API set: WordApi 1.3 ]

toJSON()

Overrides the JavaScript toJSON() method in order to provide more useful output when an API object is passed to JSON.stringify(). (JSON.stringify, in turn, calls the toJSON method of the object that is passed to it.) Whereas the original Word.Table object is an API object, the toJSON method returns a plain JavaScript object (typed as Word.Interfaces.TableData) that contains shallow copies of any loaded child properties from the original object.

toJSON(): Word.Interfaces.TableData;

Returns

track()

Track the object for automatic adjustment based on surrounding changes in the document. This call is a shorthand for context.trackedObjects.add(thisObject). If you're using this object across .sync calls and outside the sequential execution of a ".run" batch, and get an "InvalidObjectPath" error when setting a property or invoking a method on the object, you need to add the object to the tracked object collection when the object was first created. If this object is part of a collection, you should also track the parent collection.

track(): Word.Table;

Returns

untrack()

Release the memory associated with this object, if it has previously been tracked. This call is shorthand for context.trackedObjects.remove(thisObject). Having many tracked objects slows down the host application, so please remember to free any objects you add, once you're done using them. You'll need to call context.sync() before the memory release takes effect.

untrack(): Word.Table;

Returns