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:搜尋結果,指出搜尋文字的位置,如果沒有相符項目,則為空值

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

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

findText(searchPattern, from)

從指定的搜尋結果開始,搜尋元素內容是否符合指定的文字模式。

部分 JavaScript 規則運算式功能並未完全支援,例如擷取群組和模式修飾符。

系統會將提供的規則運算式模式與目前元素中包含的每個文字區塊個別比對。

參數

名稱類型說明
searchPatternString要搜尋的模式
fromRangeElement要搜尋的搜尋結果

回攻員

RangeElement:搜尋結果,指出搜尋文字的下一個位置。如果沒有相符項目,則為空值

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

  • 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:連結網址,如果元素包含這項屬性的多個值,則為空值

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

  • 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)

設定元素的屬性。

指定的屬性參數必須是物件,其中每個屬性名稱都是 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