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 内のすべてのセルにデータ検証ルール(「値 > 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 を切り取り、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"
}
]
}
}
]
}