Google Apps Script

Class Table

An element representing a table. A Table may only contain TableRow elements. For more information on document structure, see the guide to extending Google Docs.

When creating a Table that contains a large number of rows or cells, consider building it from a string array, as shown in the following example.

 
var body = DocumentApp.getActiveDocument().getBody();

 // Create a two-dimensional array containing the cell contents.
 var cells = [
   ['Row 1, Cell 1', 'Row 1, Cell 2'],
   ['Row 2, Cell 1', 'Row 2, Cell 2']
 ];

 // Build a table from the array.
 body.appendTable(cells);
 

Methods

MethodReturn typeBrief description
appendTableRow()TableRowCreates and appends a new TableRow.
appendTableRow(tableRow)TableRowAppends the given TableRow.
clear()TableClears the contents of the element.
copy()TableReturns a detached, deep copy of the current element.
editAsText()TextObtains a Text version of the current element, for editing.
findElement(elementType)RangeElementSearches the contents of the element for a descendant of the specified type.
findElement(elementType, from)RangeElementSearches the contents of the element for a descendant of the specified type, starting from the specified RangeElement.
findText(searchPattern)RangeElementSearches the contents of the element for the specified text pattern using regular expressions.
findText(searchPattern, from)RangeElementSearches the contents of the element for the specified text pattern, starting from a given search result.
getAttributes()ObjectRetrieves the element's attributes.
getBorderColor()StringRetrieves the border color.
getBorderWidth()NumberRetrieves the border width, in points.
getCell(rowIndex, cellIndex)TableCellRetrieves the TableCell at the specified row and cell indices.
getChild(childIndex)ElementRetrieves the child element at the specified child index.
getChildIndex(child)IntegerRetrieves the child index for the specified child element.
getColumnWidth(columnIndex)NumberRetrieves the width of the specified table column, in points.
getLinkUrl()StringRetrieves the link url.
getNextSibling()ElementRetrieves the element's next sibling element.
getNumChildren()IntegerRetrieves the number of children.
getNumRows()IntegerRetrieves the number of TableRows.
getParent()ContainerElementRetrieves the element's parent element.
getPreviousSibling()ElementRetrieves the element's previous sibling element.
getRow(rowIndex)TableRowRetrieves the TableRow at the specified row index.
getText()StringRetrieves the contents of the element as a text string.
getType()ElementTypeRetrieves the element's ElementType.
insertTableRow(childIndex)TableRowCreates and inserts a new TableRow at the specified index.
insertTableRow(childIndex, tableRow)TableRowInserts the given TableRow at the specified index.
isAtDocumentEnd()BooleanDetermines whether the element is at the end of the Document.
removeChild(child)TableRemoves the specified child element.
removeFromParent()TableRemoves the element from its parent.
removeRow(rowIndex)TableRowRemoves the TableRow at the specified row index.
replaceText(searchPattern, replacement)ElementReplaces all occurrences of a given text pattern with a given replacement string, using regular expressions.
setAttributes(attributes)TableSets the element's attributes.
setBorderColor(color)TableSets the border color.
setBorderWidth(width)TableSets the border width, in points.
setColumnWidth(columnIndex, width)TableSets the width of the specified column, in points.
setLinkUrl(url)TableSets the link url.

Detailed documentation

appendTableRow()

Creates and appends a new TableRow.

Return

TableRow — the new table row element


appendTableRow(tableRow)

Appends the given TableRow.

Parameters

NameTypeDescription
tableRowTableRowthe table row to append

Return

TableRow — the appended table row element


clear()

Clears the contents of the element.

Return

Table — the current element


copy()

Returns a detached, deep copy of the current element.

Any child elements present in the element are also copied. The new element will not have a parent.

Return

Table — the new copy


editAsText()

Obtains a Text version of the current element, for editing.

Use editAsText for manipulating the elements contents as rich text. The editAsText mode ignores non-text elements (such as InlineImage and HorizontalRule).

Child elements fully contained within a deleted text range are removed from the element.

 
var body = DocumentApp.getActiveDocument().getBody();

 // Insert two paragraphs separated by a paragraph containing an
 // horizontal rule.
 body.insertParagraph(0, "An editAsText sample.");
 body.insertHorizontalRule(0);
 body.insertParagraph(0, "An example.");

 // Delete " sample.\n\n An" removing the horizontal rule in the process.
 body.editAsText().deleteText(14, 25);
 

Return

Text — a text version of the current element


findElement(elementType)

Searches the contents of the element for a descendant of the specified type.

Parameters

NameTypeDescription
elementTypeElementTypethe type of element to search for

Return

RangeElement — a search result indicating the position of the search element


findElement(elementType, from)

Searches the contents of the element for a descendant of the specified type, starting from the specified RangeElement.

 
// Get the body section of the active document.
 var body = DocumentApp.getActiveDocument().getBody();

 // Define the search parameters.
 var searchType = DocumentApp.ElementType.PARAGRAPH;
 var searchHeading = DocumentApp.ParagraphHeading.HEADING1;
 var searchResult = null;

 // Search until the paragraph is found.
 while (searchResult = body.findElement(searchType, searchResult)) {
   var par = searchResult.getElement().asParagraph();
   if (par.getHeading() == searchHeading) {
     // Found one, update and stop.
     par.setText('This is the first header.');
     return;
   }
 }
 

Parameters

NameTypeDescription
elementTypeElementTypethe type of element to search for
fromRangeElementthe search result to search from

Return

RangeElement — a search result indicating the next position of the search element


findText(searchPattern)

Searches the contents of the element for the specified text pattern using regular expressions.

A subset of the JavaScript regular expression features are not fully supported, such as capture groups and mode modifiers.

The provided regular expression pattern is independently matched against each text block contained in the current element.

Parameters

NameTypeDescription
searchPatternStringthe pattern to search for

Return

RangeElement — a search result indicating the position of the search text, or null if there is no match


findText(searchPattern, from)

Searches the contents of the element for the specified text pattern, starting from a given search result.

A subset of the JavaScript regular expression features are not fully supported, such as capture groups and mode modifiers.

The provided regular expression pattern is independently matched against each text block contained in the current element.

Parameters

NameTypeDescription
searchPatternStringthe pattern to search for
fromRangeElementthe search result to search from

Return

RangeElement — a search result indicating the next position of the search text, or null if there is no match


getAttributes()

Retrieves the element's attributes.

The result is an object containing a property for each valid element attribute where each property name corresponds to an item in the DocumentApp.Attribute enumeration.

 
var body = DocumentApp.getActiveDocument().getBody();

 // Append a styled paragraph.
 var par = body.appendParagraph('A bold, italicized paragraph.');
 par.setBold(true);
 par.setItalic(true);

 // Retrieve the paragraph's attributes.
 var atts = par.getAttributes();

 // Log the paragraph attributes.
 for (var att in atts) {
   Logger.log(att + ":" + atts[att]);
 }
 

Return

Object — the element's attributes


getBorderColor()

Retrieves the border color.

Return

String — the border color


getBorderWidth()

Retrieves the border width, in points.

Return

Number — the border width, in points


getCell(rowIndex, cellIndex)

Retrieves the TableCell at the specified row and cell indices.

Parameters

NameTypeDescription
rowIndexIntegerthe index of the row containing the cell to retrieve
cellIndexIntegerthe index of the cell to retrieve

Return

TableCell — the table cell


getChild(childIndex)

Retrieves the child element at the specified child index.

 
// Get the body section of the active document.
 var body = DocumentApp.getActiveDocument().getBody();

 // Obtain the first element in the document.
 var firstChild = body.getChild(0);

 // If it's a paragraph, set its contents.
 if (firstChild.getType() == DocumentApp.ElementType.PARAGRAPH) {
   firstChild.asParagraph().setText("This is the first paragraph.");
 }
 

Parameters

NameTypeDescription
childIndexIntegerthe index of the child element to retrieve

Return

Element — the child element at the specified index


getChildIndex(child)

Retrieves the child index for the specified child element.

Parameters

NameTypeDescription
childElementthe child element for which to retrieve the index

Return

Integer — the child index


getColumnWidth(columnIndex)

Retrieves the width of the specified table column, in points.

Parameters

NameTypeDescription
columnIndexIntegerthe column index

Return

Number — the column width, in points


getLinkUrl()

Retrieves the link url.

Return

String — the link url, or null if the element contains multiple values for this attribute


getNextSibling()

Retrieves the element's next sibling element.

The next sibling has the same parent and follows the current element.

Return

Element — the next sibling element


getNumChildren()

Retrieves the number of children.

 
// Get the body section of the active document.
 var body = DocumentApp.getActiveDocument().getBody();

 // Log the number of elements in the document.
 Logger.log("There are " + body.getNumChildren() +
     " elements in the document body.");
 

Return

Integer — the number of children


getNumRows()

Retrieves the number of TableRows.

Return

Integer — the number of table rows


getParent()

Retrieves the element's parent element.

The parent element contains the current element.

Return

ContainerElement — the parent element


getPreviousSibling()

Retrieves the element's previous sibling element.

The previous sibling has the same parent and precedes the current element.

Return

Element — the previous sibling element


getRow(rowIndex)

Retrieves the TableRow at the specified row index.

Parameters

NameTypeDescription
rowIndexIntegerthe index of the row to retrieve

Return

TableRow — the table row


getText()

Retrieves the contents of the element as a text string.

Return

String — the contents of the element as text string


getType()

Retrieves the element's ElementType.

Use getType() to determine the exact type of a given element.

 
var body = DocumentApp.getActiveDocument().getBody();

 // Obtain the first element in the document body.

 var firstChild = body.getChild(0);

 // Use getType() to determine the element's type.
 if (firstChild.getType() == DocumentApp.ElementType.PARAGRAPH) {
   Logger.log('The first element is a paragraph.');
 } else {
   Logger.log('The first element is not a paragraph.');
 }
 

Return

ElementType — the element type


insertTableRow(childIndex)

Creates and inserts a new TableRow at the specified index.

Parameters

NameTypeDescription
childIndexIntegerthe index at which to insert the element

Return

TableRow — the current element


insertTableRow(childIndex, tableRow)

Inserts the given TableRow at the specified index.

Parameters

NameTypeDescription
childIndexIntegerthe index at which to insert the element
tableRowTableRowthe table row to insert

Return

TableRow — the inserted table row element


isAtDocumentEnd()

Determines whether the element is at the end of the Document.

Return

Boolean — whether the element is at the end of the document


removeChild(child)

Removes the specified child element.

Parameters

NameTypeDescription
childElementthe child element to remove

Return

Table — the current element


removeFromParent()

Removes the element from its parent.

 
var body = DocumentApp.getActiveDocument().getBody();

 // Remove all images in the document body.
 var imgs = body.getImages();
 for (var i = 0; i < imgs.length; i++) {
   imgs[i].removeFromParent();
 }
 

Return

Table — the removed element


removeRow(rowIndex)

Removes the TableRow at the specified row index.

Parameters

NameTypeDescription
rowIndexIntegerthe index of the row to remove

Return

TableRow — the removed row


replaceText(searchPattern, replacement)

Replaces all occurrences of a given text pattern with a given replacement string, using regular expressions.

A subset of the JavaScript regular expression features are not fully supported, such as capture groups and mode modifiers.

The provided regular expression pattern is independently matched against each text block contained in the current element.

 
var body = DocumentApp.getActiveDocument().getBody();

 // Clear the text surrounding "Apps Script", with or without text.
 body.replaceText("^.*Apps ?Script.*$", "Apps Script");
 

Parameters

NameTypeDescription
searchPatternStringthe regex pattern to search for
replacementStringthe text to use as replacement

Return

Element — the current element


setAttributes(attributes)

Sets the element's attributes.

The specified attributes parameter must be an object where each property name is an item in the DocumentApp.Attribute enumeration and each property value is the new value to be applied.

 
var body = DocumentApp.getActiveDocument().getBody();

 // Define a custom paragraph style.
 var style = {};
 style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] =
     DocumentApp.HorizontalAlignment.RIGHT;
 style[DocumentApp.Attribute.FONT_FAMILY] =
     DocumentApp.FontFamily.CALIBRI;
 style[DocumentApp.Attribute.FONT_SIZE] = 18;
 style[DocumentApp.Attribute.BOLD] = true;

 // Append a plain paragraph.
 var par = body.appendParagraph('A paragraph with custom style.');

 // Apply the custom style.
 par.setAttributes(style);
 

Parameters

NameTypeDescription
attributesObjectthe element's attributes

Return

Table — the current element


setBorderColor(color)

Sets the border color.

Parameters

NameTypeDescription
colorStringthe border color

Return

Table — the current element


setBorderWidth(width)

Sets the border width, in points.

Parameters

NameTypeDescription
widthNumberthe border width, in points

Return

Table — the current element


setColumnWidth(columnIndex, width)

Sets the width of the specified column, in points.

Parameters

NameTypeDescription
columnIndexIntegerthe column index
widthNumberthe border width, in points

Return

Table — the current element


setLinkUrl(url)

Sets the link url.

Parameters

NameTypeDescription
urlStringthe link url

Return

Table — the current element

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.