如要有效使用 Google 文件 API,您必須瞭解 Google 文件架構、組成文件的元素,以及這些元素之間的關係。本頁面詳細說明下列主題:
- 文件元素的概念模型
- Docs API 如何表示這些元素
- 元素的樣式屬性
頂層元素
Google 文件中最外層的容器元素是「文件」。這是可儲存在 Google 雲端硬碟、與其他使用者共用,以及使用文字和圖片更新的單位。
documents
資源的頂層元素包括 Tab
、SuggestionsViewMode
和其他屬性:
document: { title: ... , revisionId: ... , documentId: ... , suggestionsViewMode: ... , tabs: ... }
分頁
單一文件可包含多個分頁,
這些分頁具有不同的文字層級內容。文件的 tabs
屬性是 Tab
物件的序列。Tab
包含下列欄位:
TabProperties
: 包含索引標籤的屬性,例如 ID、標題和索引。childTabs
:公開分頁的子分頁 (直接巢狀內嵌在分頁下方的分頁)。DocumentTab
:代表分頁的文字內容。
後續章節會簡要概述文件分頁階層;分頁 JSON 表示法也會提供更詳細的資訊。如要進一步瞭解分頁功能,請參閱「使用分頁」。
如要操控 Body
內容以外的整體文件分頁功能,最好使用一或多個文件範本,做為以程式輔助方式產生新文件的基礎。詳情請參閱「將文字合併到文件中」。
內文
Body
通常包含文件分頁的完整內容。您可或可能想以程式輔助方式使用的項目,大多是 Body
內容中的元素:
結構元素
StructuralElement
描述為文件提供結構的內容。Body
內容是一連串的 StructuralElement
物件。內容元素會為每個 StructuralElement
物件提供個人化設定,如下圖所示:
結構元素及其內容物件包含文件中的所有視覺元件。包括文字、內嵌圖片和格式。
段落結構
Paragraph
是代表段落的 StructuralElement
。其中包含一系列以換行字元結尾的內容。內含下列物件:
ParagraphElement
:說明段落中的內容。ParagraphStyle
:選用元素,可明確設定段落的樣式屬性。Bullet
:如果段落屬於清單,這個選用元素會提供項目符號規格。
ParagraphElement
的運作方式與 StructuralElement
類似。一組內容元素類型 (例如 ColumnBreak
和 Equation
) 會自訂 ParagraphElement
,如下圖所示:
如需完整文件結構的範例,請參閱 JSON 格式的文件範例。在輸出內容中,您可以看到許多重要的結構和內容元素,以及如後續章節所述的開始和結束索引。
文字執行
TextRun
是 ParagraphElement
,代表具有相同文字樣式的連續文字字串。一個段落可以包含多個文字執行,但文字執行絕不會跨越段落界線。內容會在換行字元後分割,形成個別的文字執行。舉例來說,請看以下小型文件:

下圖顯示如何將前述文件中的段落序列視覺化,每個段落都有自己的 TextRun
和選用的 Bullet
設定。
AutoText
AutoText
是 ParagraphElement
,代表文字中的位置,會動態替換為可能隨時間變更的內容。在 Google 文件中,這項功能用於頁碼。
起始和結束索引
更新文件分頁的內容時,每次更新都會在文件中的特定位置或範圍進行。這些位置和範圍是使用「索引」指定,代表所含文件「區段」內的位移。區段是包含結構或內容元素的內文、標頭、頁尾或註腳。區隔中元素的索引值是相對於該區隔的開頭。
內文內容中的大多數元素都有以零為基準的 startIndex
和 endIndex
屬性。這些值表示元素開頭和結尾的偏移量,相對於封閉區隔的開頭。如要進一步瞭解如何排序批次文件 API 呼叫,請參閱批次更新。
索引是以 UTF-16 程式碼單元為單位計算。也就是說,代理配對會耗用兩個索引。舉例來說,「GRINNING FACE」表情符號 😄 會以 \uD83D\uDE00
表示,並耗用兩個索引。
如果是文件內文中的元素,索引代表與內文內容開頭 (即「根」元素) 的位移。
結構元素 (SectionBreak
、TableOfContents
、Table
和 Paragraph
) 的「個人化」類型沒有這些索引,因為其封閉式 StructuralElement
具有這些欄位。ParagraphElement
中包含的個人化類型 (例如 TextRun
、AutoText
和 PageBreak
) 也是如此。
存取元素
許多元素都可以使用 documents.batchUpdate
方法修改。舉例來說,使用 InsertTextRequest
,您可以變更任何含有文字的元素內容。同樣地,您可以使用 UpdateTextStyleRequest
,將格式套用至一或多個元素所含的文字範圍。
如要讀取文件元素,請使用 documents.get
方法取得完整文件的 JSON 傾印。接著,您可以剖析產生的 JSON,找出個別元素的值。詳情請參閱「以 JSON 格式輸出文件內容」。
剖析內容有助於各種用途。舉例來說,假設您有一個文件編目應用程式,會列出找到的文件。這個應用程式可以擷取文件索引標籤的標題、修訂版本 ID 和起始頁碼,如下圖所示:
由於沒有明確讀取這些設定的方法,應用程式必須取得整份文件,然後剖析 JSON 來擷取這些值。
資源繼承
StructuralElement
可以沿用父項物件的屬性。物件的屬性 (包括定義和繼承的屬性) 會決定最終的視覺外觀。
文字字元格式決定文字在文件中的呈現方式,例如粗體、斜體和底線。您套用的格式會覆寫從基礎段落TextStyle
繼承的預設格式。
反之,如果未設定任何字元的格式,系統會繼續沿用段落樣式。
段落格式決定文字區塊在文件中呈現的方式,例如對齊方式、邊框和縮排。您套用的格式會覆寫從基礎 ParagraphStyle
繼承的預設格式。反之,您未設定的任何格式設定功能,都會繼續沿用段落樣式。