Google Sheets API を使用すると、スプレッドシート内のデータをさまざまな方法で操作できます。Google スプレッドシート 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
を使用して、「値 > 5」のデータ検証ルールを範囲 A1:D10 のすべてのセルに適用する方法を示しています。
リクエスト プロトコルを以下に示します。
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 の範囲に貼り付ける方法を示しています。このメソッドでは、PASTE_FORMAT
で PasteType
列挙型を使用して、フォーマットとデータの検証のみを貼り付けます。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 の範囲を切り取り、PASTE_NORMAL
で PasteType
列挙型を使用してその値、数式、書式設定を貼り付けて、同じシートの 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"
}
]
}
}
]
}