Google 試算表 API 可讓您以各種方式操控試算表中的資料。使用者透過 Google 試算表 UI 執行的大部分操作,也可以透過 Google 試算表 API 執行。本頁的範例說明如何使用 Sheets API 執行一些常見的試算表作業。
這些範例以 HTTP 要求的形式呈現,以便不受語言限制。如要瞭解如何使用 Google API 用戶端程式庫,以不同語言實作批次更新,請參閱「更新試算表」。
在這些範例中,預留位置 SPREADSHEET_ID
和 SHEET_ID
會指出您要提供這些 ID 的位置。你可以在試算表網址中找到試算表 ID。您可以使用 spreadsheets.get
方法取得工作表 ID。範圍使用 A1 標記法指定。範例範圍為 Sheet1!A1:D5。
將資料驗證套用至範圍
以下 spreadsheets.batchUpdate
程式碼範例說明如何使用 SetDataValidationRequest
將資料驗證規則套用至 A1:D10 範圍內的每個儲存格,其中「值 > 5」。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"setDataValidation": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"rule": {
"condition": {
"type": "NUMBER_GREATER",
"values": [
{
"userEnteredValue": "5"
}
]
},
"inputMessage": "Value must be > 5",
"strict": true
}
}
}
]
}
複製及貼上儲存格格式
以下 spreadsheets.batchUpdate
程式碼範例說明如何使用 CopyPasteRequest
僅複製 A1:D10 範圍的格式,並貼到同一工作表中的 F1:I10 範圍。此方法會使用 PasteType
列舉與 PASTE_FORMAT
搭配,僅貼上格式和資料驗證。A1:D10 中的原始值保持不變。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "copyPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 5, "endColumnIndex": 9 }, "pasteType": "PASTE_FORMAT", "pasteOrientation": "NORMAL" } } ] }
剪下並貼上儲存格
以下 spreadsheets.batchUpdate
程式碼範例說明如何使用 CutPasteRequest
。它會切割 A1:D10 範圍,並使用 PasteType
列舉與 PASTE_NORMAL
一起貼上其值、公式和格式,並合併至同一工作表中的 F1:I10 範圍。原始來源範圍儲存格內容已移除。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "cutPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "rowIndex": 0, "columnIndex": 5 }, "pasteType": "PASTE_NORMAL" } } ] }
在範圍內重複公式
以下 spreadsheets.batchUpdate
程式碼範例說明如何使用 RepeatCellRequest
將公式 =FLOOR(A1*PI())
複製到 B1:D10 範圍。公式的範圍會自動依據範圍內的每個資料列和資料欄遞增,從左上方儲存格開始。舉例來說,儲存格 B1 的公式為 =FLOOR(A1*PI())
,而儲存格 D6 的公式為 =FLOOR(C6*PI())
。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"repeatCell": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 1,
"endColumnIndex": 4
},
"cell": {
"userEnteredValue": {
"formulaValue": "=FLOOR(A1*PI())"
}
},
"fields": "userEnteredValue"
}
}
]
}
排序含有多個排序規格的範圍
下列 spreadsheets.batchUpdate
程式碼範例說明如何使用 SortRangeRequest
排序 A1:D10 範圍,首先依照 B 欄遞增順序排序,然後依照 C 欄遞減順序排序,最後依照 D 欄遞減順序排序。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"sortRange": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"sortSpecs": [
{
"dimensionIndex": 1,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 2,
"sortOrder": "DESCENDING"
},
{
"dimensionIndex": 3,
"sortOrder": "DESCENDING"
}
]
}
}
]
}