擴充 Google 文件

Google Apps Script 能讓您以程式輔助的方式建立及修改 Google 文件 新增選單、對話方塊和自訂使用者介面 側欄

基本概念

Apps Script 與 Google 文件互動的方式有兩種:任何指令碼都能 建立或修改文件,前提是該指令碼使用者俱備適當的權限 或指令碼也可以 繫結至文件, 指令碼的特殊功能,可以修改使用者介面或 文件已開啟。如要在 Google 文件中建立容器繫結指令碼,請按照下列步驟操作: 依序點選「擴充功能」>「Apps Script」

不論是哪一種情況,您都可以透過 Apps Script 的 文件服務,如以下範例所示 示範。

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var body = doc.getBody();
  var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
}

以上指令碼會在使用者的 Google 雲端硬碟中建立新文件,然後插入 含有與文件名稱相同的文字的段落,樣式中的 做為標題,然後根據 和 2D 陣列指令碼就像這樣 , DocumentApp.create()敬上 合作對象:DocumentApp.openById()openByUrl()。 如果是在文件 (容器繫結) 中建立的指令碼,請使用 DocumentApp.getActiveDocument()

文件結構

從 Apps Script 的角度來看,Google 文件的結構就如同 HTML 文件,也就是 Google 文件是由許多元素 (例如 ParagraphTable),通常包含其他 元素。大多數修改 Google 文件的指令碼開頭都是呼叫 getBody(),因為 Body 是一種主要元素 包含除了 HeaderSection, FooterSection和任何 Footnotes

不過,其他元素類型可以包含其他類型的相關規則。 此外,Apps Script 中的「文件服務」只能插入某些類型 這個概念以下樹狀圖顯示了特定變數中可包含的元素 元素類型

可插入以粗體顯示的元素;非粗體元素 受到操弄

取代文字

Apps Script 常用於取代 Google 文件中的文字。假設您有 製作出內含客戶資訊的試算表 Google 文件。(這類作業通常稱為郵件 merge.)

取代文字的方法有很多種,最簡單的方式是 replaceText() 方法,如以下範例所示。replaceText 支援大多數 讓您瞭解各種程式碼工具的規則運算式功能下列第一個函式 在 Google 文件中加入幾行預留位置文字;在真實世界中 比較傾向於自行在文件中輸入預留位置。 第二個函式會將預留位置取代為 client 物件。

請注意,這兩種函式都會使用 getActiveDocument()敬上 方法,僅適用於在 Google 文件中建立的指令碼;風格 獨立的指令碼,請使用 DocumentApp.create(), openById(), 或 openByUrl()

新增一些預留位置

function createPlaceholders() {
  var body = DocumentApp.getActiveDocument().getBody();
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {state} {zip}');
}

取代預留位置

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument()
      .getBody();
  var client = {
    name: 'Joe Script-Guru',
    address: '100 Script Rd',
    city: 'Scriptville',
    state: 'GA',
    zip: 94043
  };

  body.replaceText('{name}', client.name);
  body.replaceText('{address}', client.address);
  body.replaceText('{city}', client.city);
  body.replaceText('{state}', client.state);
  body.replaceText('{zip}', client.zip);
}

自訂選單和使用者介面

您可以新增選單、對話方塊和 側欄不過請注意,指令碼只能與以下項目的使用者介面互動: 目前開啟文件的例項,且僅限指令碼

瞭解如何新增自訂選單和 新增至 Google 文件對話方塊。 如要進一步瞭解如何為對話方塊或側欄建立自訂介面,請參閱 HTML 服務指南。 如果您計劃將自訂介面 外掛程式,然後按照 符合樣式指南,確保與 以及 Google 文件編輯器的樣式和版面配置

Google 文件外掛程式

外掛程式會在 Google 文件中執行,且可安裝 開啟「Google 文件」外掛程式商店如果您已為 Google 文件開發指令碼 想要與全世界的人分享 使用 Apps Script 時 將指令碼發布為 外掛程式,其他使用者就能從外掛程式商店安裝。

如要瞭解如何建立 Google 文件外掛程式,請參閱 關於建構文件外掛程式的快速入門導覽課程

觸發條件

繫結至 Google 的指令碼 Google 文件可使用簡易觸發條件回應 加入文件的 onOpen 事件, 每當擁有文件編輯權限的使用者在 Google 文件中開啟文件時,就會發生此情況。

如要設定觸發條件,只要編寫名為 onOpen() 的函式即可。範例說明 請參閱 Google Workspace 的自訂選單。 雖然這項簡易觸發條件對於新增選單很有用,但無法用於新增任何應用程式 需要授權的指令碼服務。