Sheets API v3 からの移行

Google Sheets API v3 をベースとする既存のアプリがある場合は、 Google Sheets API v4 です。v4 バージョンは JSON ベースであり、 実現でき、実現できない多くの機能が追加されています。 使用できます。

このページでは、Sheets API v3 の旧コマンドと以前のコマンドの対応を示します。 Sheets API v4 と同等のオペレーションです。マッピングは主に spreadsheets.values コレクションは、セルの直接読み取り / 書き込み機能を提供します。 シートの追加やシート プロパティの更新など、その他の処理は spreadsheets コレクション。 なお、v4 API の JSON 構造は、 バージョン 3 で使用される XML 構造

Sheets v4 API で利用可能なリソースについて詳しくは、 API リファレンス

表記と用語

v3 API では、特定のスプレッドシート内のシートを「ワークシート」と呼びます。 これは「シート」という用語と同義です。使用されます

多くの場合、API ではスプレッドシート ID を指定する必要があります。 クリックします。また、多くの場合、認証するユーザーの ID も 表示されます。これらの値は API エンドポイントの一部として またはリクエスト本文の一部として使用できます。このページでは プレースホルダ spreadsheetIdsheetId それぞれスプレッドシート ID とシート ID を参照します。メソッドを使用する場合 これらの場所では実際の ID に置き換えてください。

また、v3 API は、 リストフィード これは、このページでは rowId プレースホルダで表されます。

リクエストの承認

アプリの実行時に、ユーザーに特定の権限を付与するように求められます。そのスコープに含まれる 要求する権限を決定します。

v3 API

Sheets API v3 は、単一の承認スコープで動作します。

https://spreadsheets.google.com/feeds

これは Pod のエイリアス

https://www.googleapis.com/auth/spreadsheets

どちらのスコープ形式も使用できます。

v4 API

Sheets API v4 では、次のスコープのセットが 1 つ以上使用されます。

https://www.googleapis.com/auth/spreadsheets.readonly
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/drive

アプリケーションで編集を行う必要がない場合は、読み取り専用のスコープを使用します。 ユーザーのスプレッドシートまたはシート プロパティです。スプレッドシートのスコープを使用する ドライブ スコープ(アプリケーションが一般的なドライブ アクセスを必要としない場合)。

公開設定

古いバージョンの API では、可視性という用語は、 特定のスプレッドシートの空き状況を確認できます。

v3 API

Sheets API v3 は、エンドポイントで直接可視性を表現します。public スプレッドシートが「ウェブに公開」されましたそのため、Cloud Storage バケットから 承認なしで API にアクセスできますが、private スプレッドシートは承認が必要です。 あります。公開設定の後のエンドポイントで、 スプレッドシート ID:

https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full

v4 API

新しい Sheets API v4 では、公開設定が明示的に宣言されません。 API 呼び出しはスプレッドシート ID を使用して行われます。アプリケーションに アクセス権がない場合、エラーが返されます。それ以外の場合は 呼び出しが続行されます。

予測

Sheets API v3 では、射影という用語はデータセットを指します。 (すべて、または固定サブセット)のいずれかです。 API 内で定義されますSheets API v4 では投影を使用しません。むしろ、 返されるデータをより細かく制御できます。

v3 API

Sheets API v3 で使用できる投影設定は 2 つだけです。full 射影は利用可能なすべての情報を返すのに対し、basic は データの小さな固定サブセット(ワークシート、リスト、セルフィード用)。 可視性と同様に、投影は API エンドポイントで指定する必要があります (公開設定後):

https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/public/basic

basic 射影によって提供されるデータのサブセットが有益 カスタマイズはできません。

v4 API

Sheets API v4 では完全なデータセットを返すことができますが、 Sheets API v3 の basic 公開設定に類似したサブセットです。 スプレッドシート内のメソッド によって返されるデータの量を制限する fields クエリ パラメータです。

たとえば、次のクエリはすべての商品のタイトルのみを返します。 特定のスプレッドシートのシート:

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties.title

スプレッドシートを作成する

v3 API

Sheets API v3 には、新しいスプレッドシートを作成する手段がありません。 Drive API Files.create を使用して メソッドを使用して、新しいスプレッドシート ファイルを作成できます。このためには、 アプリで https://www.googleapis.com/auth/drive スコープを宣言します。

v4 API

Drive API の Files.create メソッドを使用すると、 Sheets API v4 でも使用されますが、アプリケーションで https://www.googleapis.com/auth/drive スコープ。

同等の代替手段として、Sheets API v4 に用意されている spreadsheets.create メソッドを呼び出し、必要に応じてシートを追加したり、スプレッドシートとシートの設定 名前付き範囲を追加できますたとえば、次のコマンドは、新しい Pod を作成する 「NewTitle」という名前にします。

POST https://sheets.googleapis.com/v4/spreadsheets
{
 "properties": {"title": "NewTitle"}
}

認証されたユーザーのスプレッドシートを一覧表示する

v3 API

Sheets API v3 フィードを使用すると、アプリケーションで スプレッドシートには認証済みのユーザーがアクセスできます。スプレッドシート フィード 次のとおりです。

GET https://spreadsheets.google.com/feeds/spreadsheets/private/full

v4 API

Sheets API v4 では、このような操作は行っていません。おすすめの方法 drive.file スコープを使用するようにアプリを移行し、 スプレッドシートを選択する Google Picker。

スプレッドシートを一覧表示する必要がある場合は、複製できます。 Drive API の Files.list メソッド mimeType クエリ:

GET https://www.googleapis.com/drive/v3/files
             ?q=mimeType='application/vnd.google-apps.spreadsheet'

Drive API の files.list メソッドを使用して、ユーザーのすべてのスプレッドシートを一覧表示する には制限付きスコープが必要です。

シートのメタデータを取得する

Sheets API v3 には、シートのメタデータにアクセスするためのフィードが用意されています。 含まれている(行とセルのデータは、 独立したフィードです。メタデータには、シートのタイトルや 指定します。

Sheets API v4 の spreadsheets.get メソッドを使用すると、この情報にアクセスできます。

v3 API

ワークシート フィードには、この API エンドポイントからアクセスできます( (適切な認証ヘッダー):

GET https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full

このリクエストに対するレスポンスは、次のような構造になっています。 各シートのデータを別々の <entry> に格納します。

<feed xmlns="http://www.w3.org/2005/Atom"
    xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006"
    xmlns:gd="http://schemas.google.com/g/2005"
    gd:etag='W/"D0cERnk-eip7ImA9WBBXGEg."'>
  <id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full</id>
  <updated>2006-11-17T18:23:45.173Z</updated>
  <title type="text">Groceries R Us</title>
  <link rel="alternate" type="text/html"
      href="https://spreadsheets.google.com/ccc?key=spreadsheetId"/>
  <link rel="http://schemas.google.com/g/2005#feed"
      type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
  <link rel="self" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
  <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
  <author>
    <name>Fitzwilliam Darcy</name>
    <email>fitz@example.com</email>
  </author>
  <openSearch:totalResults>1</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <openSearch:itemsPerPage>1</openSearch:itemsPerPage>
  <entry gd:etag='"YDwqeyI."'>
    <id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId</id>
    <updated>2006-11-17T18:23:45.173Z</updated>
    <title type="text">Sheet1</title>
    <content type="text">Sheet1</content>
    <link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
        type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
    <link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
        type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
    <link rel="self" type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
    <link rel="edit" type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
    <gs:rowCount>100</gs:rowCount>
    <gs:colCount>20</gs:colCount>
  </entry>
</feed>

v4 API

spreadsheets.get メソッドを使用して、シートのプロパティやその他のメタデータを取得できます。 スプレッドシート API v3 で使用できる機能以上です。管理者のみ シートのプロパティを読み取る場合は、includeGridData クエリを設定します。 パラメータを false に設定して、スプレッドシートのセルデータが含まれないようにします。

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?includeGridData=false

Spreadsheet レスポンスに Sheet の配列が含まれる オブジェクト具体的にはシートのタイトルとサイズ情報を SheetProperties の下 要素として識別されます。例:

{
  "spreadsheetId": spreadsheetId,
  "sheets": [
      {"properties": {
          "sheetId": sheetId,
          "title": "Sheet1",
          "index": 0,
          "gridProperties": {
              "rowCount": 100,
              "columnCount": 20,
              "frozenRowCount": 1,
              "frozenColumnCount": 0,
              "hideGridlines": false
          },
          ...
       },
       ...
      },
      ...
  ],
  ...
}

スプレッドシートにシートを追加する

どちらの API を使用しても、既存のスプレッドシートに新しいシートを追加できます。

v3 API

Sheets API v3 では、 次の(認証済みの)POST リクエスト。メッセージのサイズを 新しいシート:

POST https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full
<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <title>Expenses</title>
  <gs:rowCount>50</gs:rowCount>
  <gs:colCount>10</gs:colCount>
</entry>

v4 API

新しいシートを追加するには、 AddSheet spreadsheets.batchUpdate の メソッドを呼び出します。リクエスト本文の一部として、 新しいシートを作成しますすべてのプロパティは省略可能です。認証情報を 既存のシートに使用されているタイトルです。

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [{
      "addSheet": {
          "properties": {
            "title": "Expenses",
            "sheetType": "GRID",
            "gridProperties": {
              "rowCount": 50,
              "columnCount": 10
            }
          }
      }
  }],
}

シートのタイトルとサイズを変更する

Sheets API v3 では、シートのタイトルとサイズを更新できます。Sheets API v4 は 使用できますが、他のシート プロパティを更新するためにも使用できます。 なお、シートのサイズを小さくすると、切り抜かれたセルのデータが 警告なしに削除されました。

v3 API

ワークシートのタイトルやサイズを変更するには、まず ワークシート フィードと 目的のワークシート エントリを見つけます。このエントリには edit URL が含まれています。 ワークシートのメタデータを更新し、PUT リクエストの本文として送信する 追加します。例:

PUT https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version
<entry>
  <id>
    https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId
  </id>
  <updated>2007-07-30T18:51:30.666Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
    term="http://schemas.google.com/spreadsheets/2006#worksheet"/>
  <title type="text">Expenses</title>
  <content type="text">Expenses</content>
  <link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
    type="application/atom+xml" href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
  <link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
    type="application/atom+xml" href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
  <link rel="self" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
  <gs:rowCount>45</gs:rowCount>
  <gs:colCount>15</gs:colCount>
</entry>

v4 API

サイズやタイトルなどのシート プロパティを更新するには、 updateSheetProperties リクエストを spreadsheets.batchUpdate メソッドを呼び出します。POST リクエストの本文には、以下のプロパティを含める必要があります。 fields パラメータでそれらのプロパティを明示的にリストする必要がある (すべてのプロパティを更新する場合は、fields:"*" を すべて一覧表示)。対象 次の例では、シートのタイトルとサイズが 次のプロパティは、指定した ID のシートで更新する必要があります。

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [
    {
      "updateSheetProperties": {
          "properties": {
            "sheetId": sheetId,
            "title": "Expenses",
            "gridProperties": {
              "rowCount": 45,
              "columnCount": 15,
            }
          },
          "fields": "title,gridProperties(rowCount,columnCount)"
     }
   }
  ],
}

シートの sheetId を取得するには、スプレッドシートを使用します。 spreadsheets.get メソッドを使用します。

シートを削除する

どちらの API でも、特定のスプレッドシートからシートを削除できます。

v3 API

ワークシートを削除するには、まず ワークシート フィード ターゲット ワークシート エントリの edit URL で DELETE リクエストを送信します。

DELETE https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version

v4 API

シートを削除するには、 DeleteSheet リクエストを spreadsheets.batchUpdate メソッドを呼び出します。POST リクエストの本文には、リクエストの sheetId のみを含めてください。 クリックします。例:

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

個々のシートの sheetId を取得するには、 スプレッドシート spreadsheets.get メソッドを呼び出します。

行データを取得する

リスト行フィードは、Sheets API v3 に用意されている 2 つのメソッドのうちの 1 つです。 スプレッドシートのセル内のデータにアクセスする(もう 1 つはセルフィード)。「 行フィードは、一般的なスプレッドシート操作(行ごとの読み取り、 行の追加、並べ替えなど)の使用を想定しているものの、 することもできます。具体的には、リストフィードでは空白行がフィードであると想定されます。 必須ヘッダーがエントリの 1 行目に できます。

これに対して、Sheets API v4 では、 行固有です。代わりに、シート内の特定のセルを参照することで、 A1 表記を使用する必要があります。「 範囲には、セルのブロック、行全体、列全体、またはシート全体を指定できます。 この API では、互いに素なセルのセットにアクセスすることもできます。

v3 API

特定のワークシートのリストベースのフィードの URL を確認するには、 ワークシート フィード 目的のワークシート エントリでリストフィードの URL を見つけます。

リストベースのフィードを取得するには、GET リクエストをリストフィードの URL に送信します。 認証ヘッダーを使用します。例:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full

このリクエストに対するレスポンスには、特に以下のエントリが含まれます。 特定の行に対応するテーブルを 作成します個々のセルの参照先: スプレッドシートのヘッダー行(必須)に指定されている名前。たとえば、ここに は 1 行のエントリです。

<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
  <id>rowId</id>
  <updated>2006-11-17T18:23:45.173Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
      term="http://schemas.google.com/spreadsheets/2006#list"/>
  <title type="text">Bingley</title>
  <content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
  <link rel="self" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
  <link rel="edit" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
  <gsx:name>Bingley</gsx:name>
  <gsx:hours>10</gsx:hours>
  <gsx:items>2</gsx:items>
  <gsx:ipm>0.0033</gsx:ipm>
</entry>

デフォルトでは、リストフィードで返される行は行順に返されます。 Sheets API v3 には、この順序を変更するクエリ パラメータが用意されています。

逆の順序:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full?reverse=true

特定の列で並べ替え:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
             ?orderby=column:lastname

Sheets API v3 では、構造化データを使って特定の行をフィルタすることもできます。 query(列ヘッダーで参照):

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
             ?sq=age>25%20and%20height<175

v4 API

Sheets API v4 では、 spreadsheets.values.get または spreadsheets.values.batchGet あります。たとえば、次の例では「Sheet1」のすべての行が返されます。

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1

このリクエストに対するレスポンスは、次のような構造になります。

{
  "range": "Sheet1",
  "majorDimension": "ROWS",
  "values": [["Name", "Hours", "Items", "IPM"],
             ["Bingley", "10", "2", "0.0033"],
             ["Darcy", "14", "6", "0.0071"]]
}

全体を取得する場合、末尾の空のセルはレスポンスに含まれません。 スプレッドシートで行えます。

Sheets API v4 には、行順クエリに対応するものがありません。 各種パラメータを使用できます。逆の順序は簡単です。シンプル 返された values 配列を逆の順序で処理します。列による並べ替えが 読み取りではサポートされていますが、スプレッドシート内のデータを並べ替えることができます( SortRange) 読み取ります。

Sheets API v4 には現在、Sheets API v3 の構造化クエリに相当する直接的なものはありません。ただし 関連するデータを取得し アプリケーションで 並べ替えることもできます

データの新しい行を追加する

どちらの API を使用しても、シートに新しいデータ行を追加できます。

v3 API

特定のワークシートのリストベースのフィードの URL を確認するには、 ワークシート フィード 目的のワークシート エントリで投稿の URL を見つけます。

データの行を追加するには、投稿の URL に POST リクエストを送信します。 認証ヘッダーを使用します。例:

POST https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full

POST リクエストの本文には、行データのエントリを含める必要があります。 追加し、個々のセルを列ヘッダーで参照します。

<entry xmlns="http://www.w3.org/2005/Atom"
       xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">
  <gsx:hours>2</gsx:hours>
  <gsx:ipm>0.5</gsx:ipm>
  <gsx:items>60</gsx:items>
  <gsx:name>Elizabeth</gsx:name>
</entry>

指定したシートの末尾に新しい行が追加されます。

v4 API

Sheets API v4 では、 spreadsheets.values.append メソッドを呼び出します。次の例では、最後の行の下に新しいデータ行を書き込みます。 「シート 1」の表できます。

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/append/Sheet1

{
   "values": [["Elizabeth", "2", "0.5", "60"]]
}

また、Sheets API v4 では、特定のフィールドを含むセルを プロパティと書式設定を AppendCells リクエストを spreadsheets.batchUpdate.

新しいデータを含む行を編集する

どちらの API でも、行データを新しい値で更新できます。

v3 API

データの行を編集するには、リストフィードを確認する をクリックして、更新する行のエントリを見つけます。内容を更新する そのエントリを必要に応じて取得します使用するエントリの ID 値が正確に 既存のエントリの ID と一致します。

エントリを更新したら、そのエントリを PUT リクエストを送信し、 リクエストの本文をその行エントリの edit URL にマッピングし、 認証ヘッダーを使用します。例:

PUT https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version
<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
  <id>rowId</id>
  <updated>2006-11-17T18:23:45.173Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
    term="http://schemas.google.com/spreadsheets/2006#list"/>
  <title type="text">Bingley</title>
  <content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
  <link rel="self" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
  <gsx:name>Bingley</gsx:name>
  <gsx:hours>20</gsx:hours>
  <gsx:items>4</gsx:items>
  <gsx:ipm>0.0033</gsx:ipm>
</entry>

v4 API

Sheets API v4 では、 指定する行の A1 表記 編集して spreadsheets.values.update その行を上書きできます。指定の範囲は、 行の最初のセルにAPI は、更新対象のセルを 値を渡します。複数のセル範囲を指定した場合、 指定する値はその範囲内に収まる必要があります。そうでない場合、API は エラーが発生します。

次のリクエスト例とリクエスト本文の例は、 「Sheet1」の 4 行目:

PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1!A4
{
   "values": [["Elizabeth", "2", "0.5", "60"]]
}

モジュールから行データを更新することもできます。 spreadsheet.values.batchUpdate method;複数のバケットを作成する場合には、この方法が 行またはセルが更新されます。

さらに、Sheets API v4 ではセルのプロパティを編集し、 セルの書式設定 UpdateCells または RepeatCell リクエストを spreadsheets.batchUpdate.

行を削除する

どちらの API も行の削除をサポートしています。削除された行は その下の行が 1 つ上にプッシュされます

v3 API

行を削除するには、まずテーブルから削除する行を取得します。 リストフィード 次に、行のエントリで指定された edit URL に DELETE リクエストを送信します。 これは、行の更新に使用する URL と同じです。

DELETE https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version

変更された行が削除されないようにするため HTTP If-Match ヘッダーを含めてください。 (元の行の ETag 値を含む)を返します。元の Deployment を エントリ要素の gd:etag 属性を調べて、行の ETag 値を調べます。

他のユーザーが更新したかどうかに関係なく、行を削除する ETag を含めずに If-Match: * を使用します。 (この場合、行を削除する前に行を取得する必要はありません)。

v4 API

Sheets API v4 による行の削除は spreadsheet.batchUpdate によって処理されます。 メソッド呼び出し(DeleteDimension を使用) リクエストできます。このリクエストを使用して列を削除したり、デベロッパー 行や列の一部のみを削除できますたとえば、 次のコマンドを実行すると、指定された ID のシートの 6 行目が削除されます(行インデックス はゼロベースで、startIndex の値は含み、endIndex の値は含みません)。

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [
    {
      "deleteDimension": {
        "range": {
          "sheetId": sheetId,
          "dimension": "ROWS",
          "startIndex": 5,
          "endIndex": 6
        }
      }
    }
  ],
}

シートの sheetId は、 spreadsheet.get メソッドを使用します。

セルデータを取得する

Sheets API v3 では、スプレッドシートに保存されているすべてのデータに基本的なアクセスを行うためのセルフィードが提供されます。 表示されます。読み取りアクセスの場合、セルフィードでシート全体を提供できます。 クエリ パラメータ セットで定義されたシートのセルの範囲、 重複しない範囲を取得する必要がある 個別に GET リクエストを使用できます。

Sheets API v4 では、シート(以下を含む)から任意のセルデータ セットを取得できます。 重複しない範囲)。Sheets API v3 では、セルのコンテンツは (ユーザーがキーボードで入力するような)入力値や、 数式(数値の場合)Sheets API v4 では、値に対する完全アクセス権が付与されます。 数式、書式設定、ハイパーリンク、データの入力規則、その他のプロパティが含まれています。

v3 API

特定のワークシートのセルベース フィードの URL を確認するには、 ワークシート フィード を実行して、目的のワークシート エントリでセルフィードの URL を見つけます。

セルベースのフィードを取得するには、セルフィードの URL に GET リクエストを送信します。 認証ヘッダーを使用します。例:

GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full

セルは行番号と列番号を使用して参照されます。特定の 1 つの Pod を 範囲を指定するには、max-rowmin-rowmax-colmin-col を使用します。 クエリ パラメータを指定します。たとえば、次の例では列内のすべてのセルを取得します。 (2 行目から 4(D))をご覧ください。

GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full
             ?min-row=2&min-col=4&max-col=4

Sheets API v3 は、取得したセルの inputValue を返します。 通常はユーザーが Google スプレッドシートのユーザーの インターフェースを使用してセルを操作します。inputValue にはリテラル値を指定できます。 指定します。API から numericValue が返されることもあります。たとえば 数式の結果が数値になったとき。たとえば、応答にはセル エントリの構造は次のようになります。

<entry gd:etag='"ImB5CBYSRCp7"'>
  <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4</id>
  <updated>2006-11-17T18:27:32.543Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
    term="http://schemas.google.com/spreadsheets/2006#cell"/>
  <title type="text">D4</title>
  <content type="text">5</content>
  <link rel="self" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4"/>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4/srevc"/>
  <gs:cell row="4" col="4" inputValue="=FLOOR(C4/(B4*60),.0001)"
    numericValue="5.0">5</gs:cell>
</entry>

v4 API

セルのデータを取得するには、 spreadsheets.values.get または spreadsheets.values.batchGet メソッドを使用します。たとえば、 以下は、「Sheet2」の列 D にある、行 2 から始まるセルを返します。 入力され、末尾は空です。 セルは省略):

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet2!D2:D?majorDimension=COLUMNS&valueRenderOption=FORMULA

このリクエストに対するレスポンスは、次のような構造になっています。

{
  "spreadsheetId": spreadsheetId,
  "valueRanges": [
      {"range": "Sheet2!D2:D",
       "majorDimension": "COLUMNS",
       "values": [["Widget", 234, "=FLOOR(C4/(B4*60),.0001)", "=D4\*1000"]]
      }]
}

新しい P-MAX キャンペーンを spreadsheet.values.batchGet 複数の範囲のセルデータを取得する場合は、目標 セルの書式設定、 spreadsheet.get メソッドが必要です。

セルを編集する

Sheets API v3 では、PUT コマンドを実行してセルのコンテンツを編集できます。 変更されたセルエントリをリクエスト本文とするセルフィード。

一方、Sheets API v4 では、 spreadsheets.values.update および spreadsheets.values.batchUpdate セルのコンテンツを変更できます。

v3 API

1 つのセルのコンテンツを編集するには、まず最初に セルフィード。 エントリに編集 URL が含まれている。エントリを更新して内容を反映させる 次に、URL の編集に PUT リクエストを発行します。 がリクエストの本文として送信されます。たとえば、 次のようにすると、セル D2(R2C4)が更新され、SUM 数式が含まれるようになります。

PUT https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full//R2C4/srevc

<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4"/>
  <gs:cell row="2" col="4" inputValue="=SUM(A1:B6)"/>
</entry>

v4 API

Sheets API v4 の単一セルの編集は、 spreadsheets.values.update メソッドを呼び出します。このメソッドには ValueInputOption クエリ パラメータが必要です。このパラメータは、 入力データを スプレッドシートの UI(USER_ENTERED)、または解析せずにそのまま使用する(RAW)。対象 次の例では、セル D2 を数式で更新します。

PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/D2?valueInputOption=USER_ENTERED
{"values": [["=SUM(A1:B6)"]]}

複数のセルを編集する場合は、 spreadsheets.values.batchUpdate メソッドを使用して 1 つのリクエストで発行できます。

バッチ リクエストで複数のセルを編集する

どちらの API でも、複数のセルのコンテンツに変更を加えることができます 1 回(バッチ)リクエストで 変換できますバッチ リクエストで参照されるセルは、 連続する範囲にする必要はありません

バッチで 1 つ以上のセルの編集が失敗した場合、Sheets API v3 では他のセルの編集が成功します。Sheets API v4 ではエラーが返されます。 バッチ アップデートの 1 つでも失敗すると判断され、そのいずれの更新も適用されません。

v3 API

複数のセルを編集するには、まずセルフィードを取得します。 指定します。このエントリにはバッチ URL が含まれています。POST を送信します リクエストと、そのセルを記述したリクエスト本文をこの URL に 新しいセルの内容が返されます。POST のリクエストとリクエスト本文 次のような構造になります。

POST https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/batch
<feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:batch="http://schemas.google.com/gdata/batch"
      xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full</id>
  <entry>
    <batch:id>request1</batch:id>
    <batch:operation type="update"/>
    <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id>
    <link rel="edit" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4/version"/>
    <gs:cell row="2" col="4" inputValue="newData"/>
  </entry>
  ...
  <entry>
    <batch:id>request2</batch:id>
    <batch:operation type="update"/>
    <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5</id>
    <link rel="edit" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5/version"/>
    <gs:cell row="5" col="2" inputValue="moreInfo"/>
  </entry>
</feed>

batch:id フィールドで、バッチ内のリクエストを一意に識別する必要があります。 セルを編集するには、batch:operation フィールドを update にする必要があります。gs:cell 行番号と列番号でセルを識別し、新しいデータを返します。 挿入できます。id には、更新するセルの完全な URL が含まれます。 link には、ファイルへのフルパスを含む href 属性が必要です。 セルの ID。これらのフィールドはすべて、各エントリに必要です。

v4 API

Sheets API v4 では、 spreadsheets.values.batchUpdate メソッドを呼び出します。

複数のセルを編集するには、POST データ変更が含まれます。例:

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values:batchUpdate
{
  "valueInputOption": "USER_ENTERED"
  "data": [
       {"range": "D4",
        "majorDimension": "ROWS",
        "values": [["newData"]]
       },
       {"range": "B5",
        "majorDimension": "ROWS",
        "values": [["moreInfo"]]
       }
  ]
}

単一のセルを範囲として指定した場合、指定した値はすべて そのセルを左上の座標としてシートに書き出します。 複数のセルの範囲を指定する場合は、指定した値が合致している必要があります あります。そうでない場合、API はエラーを返します。