Class TableOfContents

目录

包含目录的元素。TableOfContents 可以包含 ListItemParagraphTable 元素,但 TableOfContents 的内容通常由 Google 文档自动生成。如需详细了解文档结构,请参阅扩展 Google 文档的指南

方法

方法返回类型简介
clear()TableOfContents清除元素的内容。
copy()TableOfContents返回当前元素的脱离式深层副本。
editAsText()Text获取当前元素的 Text 版本,以供修改。
findElement(elementType)RangeElement在元素的内容中搜索指定类型的后代。
findElement(elementType, from)RangeElement从指定的 RangeElement 开始,在元素的内容中搜索指定类型的后代。
findText(searchPattern)RangeElement使用正则表达式在元素内容中搜索指定的文本模式。
findText(searchPattern, from)RangeElement从给定搜索结果开始,在元素内容中搜索指定的文本模式。
getAttributes()Object检索元素的属性。
getChild(childIndex)Element检索指定子索引位置的子元素。
getChildIndex(child)Integer检索指定子元素的子元素索引。
getLinkUrl()String检索链接网址。
getNextSibling()Element检索元素的下一个同级元素。
getNumChildren()Integer检索子项的数量。
getParent()ContainerElement检索元素的父元素。
getPreviousSibling()Element检索元素的上一个同级元素。
getText()String以文本字符串的形式检索元素的内容。
getTextAlignment()TextAlignment获取文本对齐方式。
getType()ElementType检索元素的 ElementType
isAtDocumentEnd()Boolean确定元素是否位于 Document 的末尾。
removeFromParent()TableOfContents从其父元素中移除元素。
replaceText(searchPattern, replacement)Element使用正则表达式将给定文本模式的所有出现替换为给定的替换字符串。
setAttributes(attributes)TableOfContents设置元素的属性。
setLinkUrl(url)TableOfContents设置链接网址。
setTextAlignment(textAlignment)TableOfContents设置文本对齐方式。

详细文档

clear()

清除元素的内容。

返回

TableOfContents - 当前元素。


copy()

返回当前元素的脱离深层副本。

系统还会复制该元素中的所有子元素。新元素没有父元素。

返回

TableOfContents - 新副本。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

editAsText()

获取当前元素的 Text 版本,以供修改。

使用 editAsText 以富文本形式操控元素内容。editAsText 模式会忽略非文本元素(例如 InlineImageHorizontalRule)。

完全包含在被删除文本范围内的子元素会从该元素中移除。

const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().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);

返回

Text - 当前元素的文本版本


findElement(elementType)

在元素的内容中搜索指定类型的后代。

参数

名称类型说明
elementTypeElementType要搜索的元素类型。

返回

RangeElement - 搜索结果,用于指示搜索元素的位置。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

findElement(elementType, from)

从指定的 RangeElement 开始,在元素的内容中搜索指定类型的后代。

const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

// Define the search parameters.

let searchResult = null;

// Search until the paragraph is found.
while (
    (searchResult = body.findElement(
         DocumentApp.ElementType.PARAGRAPH,
         searchResult,
         ))) {
  const par = searchResult.getElement().asParagraph();
  if (par.getHeading() === DocumentApp.ParagraphHeading.HEADING1) {
    // Found one, update and stop.
    par.setText('This is the first header.');
    break;
  }
}

参数

名称类型说明
elementTypeElementType要搜索的元素类型。
fromRangeElement要搜索的搜索结果。

返回

RangeElement - 指示搜索元素的下一个位置的搜索结果。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

findText(searchPattern)

使用正则表达式在元素内容中搜索指定的文本模式。

部分 JavaScript 正则表达式功能(例如捕获组和模式修饰符)不受完全支持。

系统会将提供的正则表达式模式与当前元素中包含的每个文本块进行单独匹配。

参数

名称类型说明
searchPatternString要搜索的模式

返回

RangeElement - 搜索结果,用于指示搜索文本的位置;如果没有匹配项,则为 null

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

findText(searchPattern, from)

从给定搜索结果开始,在元素内容中搜索指定的文本模式。

部分 JavaScript 正则表达式功能(例如捕获组和模式修饰符)不受完全支持。

系统会将提供的正则表达式模式与当前元素中包含的每个文本块进行单独匹配。

参数

名称类型说明
searchPatternString要搜索的模式
fromRangeElement要搜索的搜索结果

返回

RangeElement - 搜索结果,表示搜索文本的下一个位置;如果没有匹配项,则为 null

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getAttributes()

检索元素的属性。

结果是一个对象,其中包含每个有效元素属性的属性,每个属性名称对应于 DocumentApp.Attribute 枚举中的项。

const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();

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

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

// Log the paragraph attributes.
for (const att in atts) {
  Logger.log(`${att}:${atts[att]}`);
}

返回

Object - 元素的属性。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getChild(childIndex)

检索指定子索引处的子元素。

const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

// Obtain the first element in the tab.
const 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.');
}

参数

名称类型说明
childIndexInteger要检索的子元素的索引。

返回

Element - 指定索引处的子元素。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getChildIndex(child)

检索指定子元素的子元素索引。

参数

名称类型说明
childElement要检索索引的子元素。

返回

Integer - 子索引。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getLinkUrl()

检索链接网址。

返回

String - 链接网址;如果元素包含此属性的多个值,则为 null

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getNextSibling()

检索元素的下一个同级元素。

下一个同胞兄弟具有相同的父元素,并且位于当前元素之后。

返回

Element - 下一个同级元素。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getNumChildren()

检索子项的数量。

const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

// Log the number of elements in the tab.
Logger.log(`There are ${body.getNumChildren()} elements in the tab's body.`);

返回

Integer - 子项数量。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getParent()

检索元素的父元素。

父元素包含当前元素。

返回

ContainerElement - 父元素。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getPreviousSibling()

检索元素的上一个同级元素。

上一个同胞兄弟具有相同的父元素,并且位于当前元素之前。

返回

Element - 上一个同级元素。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getText()

以文本字符串的形式检索元素的内容。

返回

String - 元素的内容(以文本字符串表示)

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getTextAlignment()

获取文本对齐方式。可用的对齐类型包括 DocumentApp.TextAlignment.NORMALDocumentApp.TextAlignment.SUBSCRIPTDocumentApp.TextAlignment.SUPERSCRIPT

返回

TextAlignment - 文本对齐方式的类型;如果文本包含多种类型的文本对齐方式,或者文本对齐方式从未设置过,则为 null

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

getType()

检索元素的 ElementType

使用 getType() 确定给定元素的确切类型。

const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();

// Obtain the first element in the active tab's body.

const 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.');
}

返回

ElementType - 元素类型。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

isAtDocumentEnd()

确定元素是否位于 Document 的末尾。

返回

Boolean - 元素是否位于标签页的末尾。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

removeFromParent()

从其父元素中移除元素。

const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();

// Remove all images in the active tab's body.
const imgs = body.getImages();
for (let i = 0; i < imgs.length; i++) {
  imgs[i].removeFromParent();
}

返回

TableOfContents - 移除的元素。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

replaceText(searchPattern, replacement)

使用正则表达式将给定文本模式的所有出现替换为给定的替换字符串。

搜索模式以字符串(而非 JavaScript 正则表达式对象)的形式传递。 因此,您需要对模式中的所有反斜杠进行转义。

此方法使用 Google 的 RE2 正则表达式库,这会限制支持的语法

系统会将提供的正则表达式模式与当前元素中包含的每个文本块进行单独匹配。

const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

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

参数

名称类型说明
searchPatternString要搜索的正则表达式模式
replacementString要用作替换项的文本

返回

Element - 当前元素

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

setAttributes(attributes)

设置元素的属性。

指定的 attributes 参数必须是对象,其中每个属性名称都是 DocumentApp.Attribute 枚举中的项,每个属性值都是要应用的新值。

const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();

// Define a custom paragraph style.
const style = {};
style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] =
    DocumentApp.HorizontalAlignment.RIGHT;
style[DocumentApp.Attribute.FONT_FAMILY] = 'Calibri';
style[DocumentApp.Attribute.FONT_SIZE] = 18;
style[DocumentApp.Attribute.BOLD] = true;

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

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

参数

名称类型说明
attributesObject元素的属性。

返回

TableOfContents - 当前元素。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

setLinkUrl(url)

设置链接网址。

参数

名称类型说明
urlString链接网址

返回

TableOfContents - 当前元素

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents

setTextAlignment(textAlignment)

设置文本对齐方式。可用的对齐方式类型包括 DocumentApp.TextAlignment.NORMALDocumentApp.TextAlignment.SUBSCRIPTDocumentApp.TextAlignment.SUPERSCRIPT

// Make the entire first paragraph in the active tab be superscript.
const documentTab =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab();
const text = documentTab.getBody().getParagraphs()[0].editAsText();
text.setTextAlignment(DocumentApp.TextAlignment.SUPERSCRIPT);

参数

名称类型说明
textAlignmentTextAlignment要应用的文本对齐方式

返回

TableOfContents - 当前元素

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/documents