シートのオペレーション

Google Sheets API を使用すると、シートの作成、クリア、コピー、削除と、そのプロパティの管理ができます。このページの例は、Sheets API を使用して一般的なスプレッドシート オペレーションを実行する方法を示しています。

これらの例は、言語に依存しない HTTP リクエストの形式で提供されています。Google API クライアント ライブラリを使用してバッチ アップデートをさまざまな言語で実装する方法については、スプレッドシートを更新するをご覧ください。

以下の例では、プレースホルダ SPREADSHEET_IDSHEET_ID が、これらの ID を指定する場所を示しています。スプレッドシート ID はスプレッドシートの URL で確認できます。シート ID を取得するには、spreadsheets.get メソッドを使用します。範囲は A1 表記で指定します。範囲の例は「Sheet1!A1:D5」です。

シートを追加

次の spreadsheets.batchUpdate コードサンプルは、AddSheetRequest を使用してスプレッドシートにシートを追加するとともに、タイトル、グリッドサイズ、タブの色を設定する方法を示しています。

レスポンスは AddSheetResponse で構成されます。これには、作成されたシートのプロパティ(SHEET_ID など)を含むオブジェクトが含まれます。

リクエスト プロトコルを以下に示します。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addSheet": {
        "properties": {
          "title": "Deposits",
          "gridProperties": {
            "rowCount": 20,
            "columnCount": 12
          },
          "tabColor": {
            "red": 1.0,
            "green": 0.3,
            "blue": 0.4
          }
        }
      }
    }
  ]
}

書式を維持したままシートのすべての値をクリアする

次の spreadsheets.batchUpdate コードサンプルは、UpdateCellsRequest を使用して、書式を変更せずにシートからすべての値を削除する方法を示しています。

対応する値を指定せずに userEnteredValue フィールドを指定すると、範囲内の値をクリアする指示と解釈されます。この設定は他のフィールドでも使用できます。たとえば、fields 値を userEnteredFormat に変更すると、Sheets API でサポートされているすべての書式がシートから削除されますが、セル値は変更されません。

リクエスト プロトコルを以下に示します。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateCells": {
        "range": {
          "sheetId": SHEET_ID
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

スプレッドシート間でシートをコピーする

次の spreadsheet.sheets.copyTo コードサンプルは、SHEET_ID で指定された 1 つのシートを、あるスプレッドシートから別のスプレッドシートにコピーする方法を示しています。

リクエスト本文の TARGET_SPREADSHEET_ID 変数は、宛先スプレッドシートを指定します。コピーでは、元のプロパティのすべての値、書式設定、数式、その他のプロパティが保持されます。コピーされたシートのタイトルは「[元のシートタイトル] のコピー」に設定されます。

レスポンスは、作成されたシートのプロパティを記述する SheetProperties オブジェクトで構成されます。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/sheets/SHEET_ID:copyTo
{
  "destinationSpreadsheetId": "TARGET_SPREADSHEET_ID"
}

シートを削除する

次の spreadsheets.batchUpdate コードサンプルは、DeleteSheetRequest を使用して、SHEET_ID で指定されたシートを削除する方法を示しています。

リクエスト プロトコルを以下に示します。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteSheet": {
        "sheetId": SHEET_ID
      }
    }
  ]
}

シートデータの読み取り

次の spreadsheets.get コードサンプルは、SHEET_IDSPREADSHEET_ID で指定されたスプレッドシートからシートのプロパティ情報を取得する方法を示しています。このメソッドは多くの場合、特定のスプレッドシート内のシートのメタデータを特定するために使用されます。これにより、追加のオペレーションでそれらのシートをターゲットにできます。fields クエリ パラメータは、セル値データやスプレッドシート全体に関連するデータではなく、シートのプロパティ データのみを返すように指定します。

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?&fields=sheets.properties

レスポンスは、SheetProperties 要素を持つ Sheet オブジェクトを含む Spreadsheet リソースで構成されます。レスポンス フィールドがデフォルト値に設定されている場合、そのフィールドはレスポンスから除外されます。

{
  "sheets": [
    {
      "properties": {
        "sheetId": SHEET_ID,
        "title": "Sheet1",
        "index": 0,
        "sheetType": "GRID",
        "gridProperties": {
          "rowCount": 100,
          "columnCount": 20,
          "frozenRowCount": 1
        }
        "tabColor": {
          "blue": 1.0
        }
      },
      ...
  ],
}