Google Sheets API を使用すると、スプレッドシート内のセルと範囲の書式設定を更新できます。このページの例では、Sheets API を使用して一般的な書式設定操作を行う方法を示します。条件付き書式設定のその他の例については、条件付き書式設定のレシピ ページをご覧ください。
スプレッドシートを更新すると、一部のリクエストでレスポンスが返されることがあります。
これらは配列で返され、各レスポンスは対応するリクエストと同じインデックスを占有します。レスポンスがないリクエストもあり、その場合はレスポンスが空になります。これらの例のレスポンス構造は、
spreadsheets.batchUpdate をご覧ください。
これらの例は、言語に依存しない HTTP リクエストの形式で示されています。Google API クライアント ライブラリを使用してさまざまな言語でバッチ アップデートを実装する方法については、スプレッドシートを更新するをご覧ください。
以下の例では、プレースホルダ SPREADSHEET_ID と SHEET_ID
を使用して、これらの ID を指定する場所を示しています。スプレッドシート ID はスプレッドシートの URL で確認できます。シート ID は、
メソッド
spreadsheets.get
を使用して取得できます。範囲は A1
表記を使用して指定します。範囲の例は Sheet1!A1:D5 です。
上の動画では、固定行の作成、セルの太字化、通貨の書式設定の実装、セルの検証、セル値の制限など、さまざまな方法でスプレッドシートのセルを書式設定する方法について説明します。
セルの枠線を編集する
次の
spreadsheets.batchUpdate
コードサンプルは、
UpdateBordersRequest
を使用して、A1:F10 範囲の各セルに破線の青い上枠線と下枠線を設定する方法を示しています。innerHorizontal
フィールドは、範囲の内側に水平方向の枠線を作成します。このフィールドを省略すると、範囲全体の上部と下部にのみ枠線が追加されます。
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
"requests": [
{
"updateBorders": {
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 6
},
"top": {
"style": "DASHED",
"width": 1,
"color": {
"blue": 1.0
},
},
"bottom": {
"style": "DASHED",
"width": 1,
"color": {
"blue": 1.0
},
},
"innerHorizontal": {
"style": "DASHED",
"width": 1,
"color": {
"blue": 1.0
},
},
}
}
]
}ヘッダー行の書式を設定する
次の
spreadsheets.batchUpdate
コードサンプルは、
RepeatCellRequest
を使用してシート内のヘッダー行の書式を設定する方法を示しています。最初のリクエストでは、テキストの色、背景色、テキストのフォントサイズ、テキストの配置を更新し、テキストを太字にします。range
フィールドで列インデックスを省略すると、行全体が書式設定されます。2 番目のリクエストでは、ヘッダー行が固定されるようにシートのプロパティを調整します。
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "repeatCell": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 1 }, "cell": { "userEnteredFormat": { "backgroundColor": { "red": 0.0, "green": 0.0, "blue": 0.0 }, "horizontalAlignment" : "CENTER", "textFormat": { "foregroundColor": { "red": 1.0, "green": 1.0, "blue": 1.0 }, "fontSize": 12, "bold": true } } }, "fields": "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)" } }, { "updateSheetProperties": { "properties": { "sheetId": SHEET_ID, "gridProperties": { "frozenRowCount": 1 } }, "fields": "gridProperties.frozenRowCount" } } ] }
セルを結合する
次の
spreadsheets.batchUpdate
コードサンプルは、
MergeCellsRequest
を使用してセルを結合する方法を示しています。最初のリクエストでは、A1:B2 範囲を 1 つのセルに結合します。2
番目のリクエストでは、A3:B6 の列を結合しますが、行は分離したままにします。
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
"requests": [
{
"mergeCells": {
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 0,
"endRowIndex": 2,
"startColumnIndex": 0,
"endColumnIndex": 2
},
"mergeType": "MERGE_ALL"
}
},
{
"mergeCells": {
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 2,
"endRowIndex": 6,
"startColumnIndex": 0,
"endColumnIndex": 2
},
"mergeType": "MERGE_COLUMNS"
}
},
]
}範囲のカスタム日時形式または小数点形式を設定する
次の
spreadsheets.batchUpdate
コードサンプルは、
RepeatCellRequest
を使用して、カスタムの日付と時刻の形式と数値形式を使用するようにセルを更新する方法を示しています。最初のリクエスト
では、範囲 A1:A10 のセルにカスタムの日付と時刻の形式 hh:mm:ss am/pm,
ddd mmm dd yyyy を設定します。この形式の日付と時刻の例は、「02:05:07 PM, Sun Apr 03 2016」です。
2 番目のリクエストでは、B1:B10 のセルにカスタム数値形式 #,##0.0000
を設定します。これは、数値がカンマ区切りでグループ化され、小数点以下が 4 桁になり、先頭のゼロが 1 つを除いて削除されることを示します。たとえば、「3.14」は「3.1400」としてレンダリングされ、「12345.12345」は「12,345.1235」としてレンダリングされます。
詳しくは、日付と数値 の形式をご覧ください。
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "repeatCell": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 1 }, "cell": { "userEnteredFormat": { "numberFormat": { "type": "DATE", "pattern": "hh:mm:ss am/pm, ddd mmm dd yyyy" } } }, "fields": "userEnteredFormat.numberFormat" } }, { "repeatCell": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 1, "endColumnIndex": 2 }, "cell": { "userEnteredFormat": { "numberFormat": { "type": "NUMBER", "pattern": "#,##0.0000" } } }, "fields": "userEnteredFormat.numberFormat" } } ] }