Google Sheets API を使用すると、スプレッドシート内のデータをさまざまな方法で操作できます。スプレッドシートの UI を使用するユーザーが利用できるほとんどの機能は、スプレッドシート 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 に貼り付ける方法を示しています。このメソッドは、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 を切り取り、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"
}
]
}
}
]
}