進階文件服務可讓您在 Apps Script 中使用 Google Docs API。與 Apps Script 的內建文件服務類似,這個 API 可讓指令碼讀取、編輯 Google 文件中的內容及設定內容格式。在多數情況下,內建服務較容易使用,但這項進階服務提供幾項額外功能。
參考資料
如要進一步瞭解這項服務,請參閱 Docs API 的參考說明文件。如同 Apps Script 的所有進階服務,進階文件服務會使用與公用 API 相同的物件、方法和參數。詳情請參閱「如何判定方法簽章」一文。
如要回報問題及尋找其他支援,請參閱 Docs API 支援指南。
程式碼範例
下方程式碼範例使用第 1 版的 API。
建立文件
本範例會建立新文件。
尋找並取代文字
這個範例會尋找並取代文件中的一組文字。這在將範本文件副本中的預留位置替換為資料庫的值時,這項功能非常實用。
插入文字並設定樣式
這個範例會在文件開頭插入新文字,並套用特定字型和大小。請注意,如果可能的話,請將多項作業批次處理為單一 batchUpdate
呼叫以提升效率。
朗讀第一段
這個範例會記錄文件中第一個段落的文字。由於在 Document API 中會有段落的結構化,這包括合併多個子元素的文字。
最佳做法
批次更新
使用進階文件服務時,請在陣列中合併多個要求,而不是在迴圈中呼叫 batchUpdate
。
錯誤做法 - 以迴圈方式呼叫 batchUpdate
。
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
Docs.Documents.batchUpdate({
requests: [{
replaceAllText: ...
}]
}, docId);
}
建議做法 - 使用一系列更新項目呼叫 batchUpdate
。
var requests = [];
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
requests.push({ replaceAllText: ... });
}
Docs.Documents.batchUpdate({
requests: requests
}, docId);