本文說明如何使用 spreadsheets 資源的 spreadsheets.batchUpdate 方法。
除了儲存格中的值資料外,試算表還包含許多其他類型的資料,例如:
- 尺寸
- 儲存格格式和框線
- 已命名範圍
- 受保護的範圍
- 條件式格式設定
這些只是眾多資料類型中的一小部分,可控制試算表的外觀和運作方式。spreadsheets.batchUpdate 方法可讓您更新任何試算表詳細資料。變更會分批處理,因此如果其中一項要求失敗,系統就不會寫入其他 (可能相依的) 變更。
如要讀取及寫入儲存格值資料,也可以使用 spreadsheets.values 資源,詳情請參閱「讀取及寫入儲存格值」。
作業類型
spreadsheets.batchUpdate 方法支援的特定作業可歸類為下列廣泛的作業類型:
| 類別 | 說明 |
|---|---|
| 新增 (和複製) | 新增物件 (有時會根據舊物件,如複製要求)。 |
| 更新 (和設定) | 更新物件的特定屬性,通常會保留舊屬性 (而 Set 請求會覆寫先前的資料)。 |
| 刪除 | 移除物件。 |
下一節會使用這些類別,說明特定作業的行為。
批次更新作業
spreadsheets.batchUpdate 方法會採用一或多個 Request 物件,每個物件都會指定要執行的單一要求類型。下表列出批次更新要求類型,並依資源物件和作業類型分組:
資料操縱要求
此外,還有一些額外要求會模擬使用者動作,以操控資料:
| 要求 | 說明 |
|---|---|
AutoFillRequest |
根據現有資料自動填入更多資料。 |
CopyPasteRequest |
從一個區域複製資料,然後貼到另一個區域。 |
CutPasteRequest |
將資料從一個區域剪下並貼到另一個區域。 |
DeleteDuplicatesRequest |
移除儲存格範圍中指定資料欄含有重複值的資料列。 |
FindReplaceRequest |
尋找並將某些文字取代為其他文字。 |
PasteDataRequest |
將資料 (HTML 或分隔符號) 貼到工作表中。 |
RandomizeRangeRequest |
隨機排列範圍內的資料列。 |
SortRangeRequest |
排序範圍內的資料。 |
TextToColumnsRequest |
將文字欄轉換成多個文字欄。 |
TrimWhitespaceRequest |
移除儲存格中的空白字元 (例如空格、定位點或換行符號)。 |
如要進一步瞭解 Google 試算表的儲存格和列數上限,請參閱「Google 雲端硬碟可存放的檔案」。
使用欄位遮罩更新特定欄位
許多更新要求都需要 FieldMask。欄位遮罩是以半形逗號分隔的欄位清單,用於指出要更新物件中的哪些欄位,同時保留所有其他欄位不變。使用欄位遮罩可避免意外覆寫要求中未指定的欄位。
如要進一步瞭解欄位遮罩,請參閱使用欄位遮罩更新。
以下程式碼範例說明如何使用 UpdateSpreadsheetPropertiesRequest 僅更新試算表的標題:
要求
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
要求主體
{
"requests": [{
"updateSpreadsheetProperties": {
"properties": {"title": "TITLE"},
"fields": "title"
}
}]
}將 TITLE 替換為試算表的新標題。
批次更新回覆
更新試算表時,部分類型的要求可能會傳回回應。 這些回應會以陣列形式傳回,每個回應佔用的索引與對應要求相同。部分要求沒有回應,因此回應為空白。
一般來說,「新增」要求的回應會傳回新增物件的 ID 等資訊。如需支援的回覆清單,請參閱 Responses。
程式碼範例:批次更新試算表
下列程式碼範例說明如何執行這些動作:
- 使用
title變數更新試算表的標題。 - 使用
find和replacement變數,在試算表中尋找並取代儲存格值。