Google Sheets API を使用すると、スプレッドシート内のデータをさまざまな方法で操作できます。Sheets UI を使用するユーザーが利用できる機能のほとんどは、Sheets API でも使用できます。このページの例では、Sheets API を使用して一般的なスプレッドシート操作を行う方法を示します。
これらの例は、言語に依存しない HTTP リクエストの形式で示されています。Google API クライアント ライブラリを使用してさまざまな言語でバッチ アップデートを実装する方法については、スプレッドシートを更新するをご覧ください。
これらの例では、SPREADSHEET_ID と SHEET_ID
というプレースホルダを使用して、これらの ID をどこで指定するかを示しています。スプレッドシート ID はスプレッドシートの URL で確認できます。シート ID は
spreadsheets.get メソッドを使用して取得できます。範囲は
A1 形式で指定します。範囲の例は
Sheet1!A1:D5 です。
範囲にデータ検証を適用する
次の
spreadsheets.batchUpdate
コードサンプルは、
SetDataValidationRequest
を使用して、範囲 A1:D10 のすべてのセルにデータ検証ルール(「value > 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"
}
]
}
}
]
}