Sheets API v3'ten veri taşıma

Google Sheets API v3'ü temel alan uygulamalarınız varsa Google Sheets API v4. v4 sürümü JSON tabanlıdır ve kullanımı daha kolaydır büyük miktarda işlevsellik kattığından, bunun mümkün olmadığı kontrol edebilirsiniz.

Bu sayfada, eski Sheets API v3 komutları ile bu komutların arasındaki eşleme sunulmaktadır. Sheets API v4'te eşdeğer işlemler. Haritalama, büyük ölçüde spreadsheets.values koleksiyonundan yararlanın. Sayfa ekleme veya sayfa özelliklerini güncelleme gibi diğer konular, e-tablolar koleksiyonuna gidin. v4 API'nin JSON yapılarının v3'te kullanılan XML yapıları.

Sheets v4 API'de bulunan kaynaklar hakkında daha fazla bilgi için API Referansı.

Gösterim ve şartlar

v3 API, belirli bir e-tablodaki sayfaları "çalışma sayfaları" olarak belirtir. "Sayfalar" terimiyle eş anlamlıdır yeni bir çözüm sunar.

API'ler genellikle bir e-tablo kimliği belirtmenizi gerektirir. farklı olabilir. Ayrıca genellikle bir sayfaya gönderilir. Bu değerler, API uç noktasının parçası olarak görünür URL'si (sorgu parametreleri olarak veya istek gövdesinin parçası olarak). Bu sayfada spreadsheetId ve sheetId yer tutucuları sırasıyla e-tablo ve sayfa kimliklerine başvuruda bulunmalıdır. Yöntemleri kullanırken yerine, bu konumlardaki gerçek kimlikleri kullanın.

v3 API ayrıca liste feed'i; bu değer, bu sayfada rowId yer tutucusuyla temsil edilir.

İstekleri yetkilendirme

Uygulamanız çalışırken kullanıcılardan belirli izinleri vermelerini ister; kapsamlarının hangi izinleri istediğini uygulamanızda belirttiğiniz gibi belirler.

v3 API'sı

Sheets API v3, tek bir yetkilendirme kapsamıyla çalışır:

https://spreadsheets.google.com/feeds

Bu, Google’ın

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

Her iki kapsam biçimi de kullanılabilir.

v4 API'sı

Sheets API v4, aşağıdaki kapsamlardan birini veya daha fazlasını kullanır:

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

Uygulamanızın kullanıcının e-tablo veya e-tablo özelliklerini kullanabilir. Bunun yerine e-tablo kapsamlarını kullan Uygulama, genel Drive erişimine ihtiyaç duymuyorsa Drive kapsamları.

Görünürlük

API'nın eski sürümlerinde görünürlük terimi, API'nin kullanılabilirlik durumudur.

v3 API'sı

Sheets API v3, görünürlüğü doğrudan uç noktalarında ifade eder. public e-tablo "Web'de yayınlanmıştır" ve böylece Yetkilendirme olmadan API, private e-tablosu ise kimlik doğrulama. Görünürlük, e-tablo kimliği:

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

v4 API'sı

Yeni Sheets API v4'te görünürlükle ilgili açık bir beyan yoktur. API çağrıları, e-tablo kimlikleri kullanılarak yapılır. Uygulama belirtilen e-tabloya erişim izni verirseniz bir hata döndürülür. Aksi halde görüşme devam eder.

Projeksiyon

Projeksiyon terimi, Sheets API v3 tarafından, veri kümesini belirtmek için kullanılır belirli bir API çağrısının tümü veya sabit bir alt kümesi tarafından döndürülen API içinde tanımlanmış olmalıdır. Sheets API v4'te projeksiyon kullanılmaz, Google'a hangi verilerin döndürüleceği konusunda daha fazla kontrol sahibi olmanızı sağlar.

v3 API'sı

Sheets API v3'te yalnızca iki olası projeksiyon ayarı vardır. full. projeksiyon mevcut tüm bilgileri döndürürken basic, bir daha küçük, sabit veri alt kümesi (çalışma sayfaları, liste ve hücre feed'leri için). Görünürlük gibi, projeksiyon da API uç noktasında belirtilmelidir. (görünürlük ayarından sonra):

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

basic tahmini tarafından sağlanan daha küçük veri alt kümesi değerlidir özelleştirilemez.

v4 API'sı

Sheets API v4 tam bir veri kümesi döndürebilir, ancak sabit E-Tablolar API v3'ün basic görünürlük ayarına benzer şekilde alt kümeler oluşturur. E-tablodaki yöntemler kullanımı ve kullanımı üzerinden döndürdükleri veri miktarını kısıtlamalarını, fields sorgu parametresi

Örneğin, aşağıdaki sorgu yalnızca belirli bir e-tablodaki sayfalar için

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

E-tablo oluştur

v3 API'sı

Sheets API v3, yeni e-tablolar oluşturmak için bir araç sağlamaz; Drive API Files.create yöntemini nasıl kullanabilirsiniz? Bu, https://www.googleapis.com/auth/drive kapsamını beyan etmek için kullanılan bir uygulamadır.

v4 API'sı

Drive API Files.create yöntemi Sheets API v4 ile de kullanılır ancak uygulamanın, https://www.googleapis.com/auth/drive kapsamı.

Eşdeğer bir alternatif olarak Sheets API v4, spreadsheets.create yöntemini kullanabilir, isteğe bağlı olarak sayfa ekleyebilir, e-tabloyu ve sayfayı özellikleri ve adlandırılmış aralıklar ekleyin. Örneğin, aşağıdakiler yeni bir ve "NewTitle" adını alır:

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

Kimliği doğrulanmış kullanıcı için e-tabloları listele

v3 API'sı

E-Tablolar API v3 feed'i, bir uygulamanın tüm e-tabloların erişilebilir olması gerekir. E-tablo feed'i uç nokta şöyle:

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

v4 API'sı

Sheets API v4, bu işlemi gerçekleştirmez. Önerilerimiz: uygulamanızı drive.file kapsamını E-tablo seçimi için Google Seçici.

Gerektiği durumlarda e-tablolar yinelenebilir Drive API Files.list yöntemiyle bir mimeType sorgusu:

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

Bir kullanıcının tüm e-tablolarını listelemek için Drive API files.list yöntemini kullanma kısıtlanmış bir kapsam gerektirir.

Sayfa meta verilerini alma

Sheets API v3, e-tablo meta verilerine erişmek için bir feed sağlar bir elektronik tabloda (satır ve hücre verilerine ayrı bir feed). Meta veriler; sayfa başlıkları ve boyut bilgisi sağlar.

Sheets API v4 spreadsheets.get yöntemi sayesinde bu bilgilere ve daha fazlasına erişebilirsiniz.

v3 API'sı

Çalışma sayfası feed'ine bu API uç noktasından erişilebilir ( uygun yetkilendirme üstbilgisi):

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

Bu isteğe verilen yanıt şuna benzer bir yapıya sahiptir: her sayfanın verileri ayrı bir <entry> içinde yer alır:

<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'sı

spreadsheets.get yöntemi, sayfa özelliklerini ve diğer meta verileri almak için kullanılabilir. Sheets API v3 ile sunulandan daha fazla. Yalnızca sayfa özelliklerini okumak istiyorsanız includeGridData sorgusunu ayarlayın parametresini false adresine eklemeniz gerekir:

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

Spreadsheet yanıt, Sheet dizisi içeriyor nesneler; sayfa başlıkları ve boyut bilgileri burada bulunabilir. SheetProperties altından öğesi oluşturabilirsiniz. Örneğin:

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

E-tabloya sayfa ekleme

Her iki API de mevcut bir e-tabloya yeni sayfalar eklemenize olanak tanır.

v3 API'sı

Sheets API v3, yeni çalışma sayfaları eklemek için takip eden (kimliği doğrulanmış) POST isteği. Reklam öğesinin boyutunu belirtmek için yeni sayfa:

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'sı

Yeni sayfa eklemek için AddSheet spreadsheets.batchUpdate yöntemidir. İstek gövdesinin bir parçası olarak, sayfa özelliklerini yeni sayfa; tüm özellikler isteğe bağlıdır. E-postanızda başlık ekleyin.

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

Sayfa başlığını ve boyutunu değiştirme

Sheets API v3, sayfa başlıklarını ve boyutunu güncellemenize olanak tanır. Sheets API v4 da buna olanak tanır ancak diğer sayfa özelliklerini güncellemek için de kullanılabilir. Bir sayfanın boyutunu küçültmenin, kırpılmış hücrelerdeki verilerin gösterilmesine neden olabileceğini unutmayın. uyarı yapılmadan silindi.

v3 API'sı

Çalışma sayfasının başlığını veya boyutunu değiştirmek için çalışma sayfası feed'i ve edit URL'sini içeren istenen çalışma sayfası girişini bulun. Çalışma sayfasının meta verilerini güncelleme ve PUT isteğinin gövdesi olarak gönderme ifadesini ekleyin. Örneğin:

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'sı

Boyut, başlık ve diğer sayfa özelliklerini güncellemek için updateSheetProperties bu bölümde spreadsheets.batchUpdate yöntemidir. POST isteğinin gövdesi, değiştirilmelidir ve fields parametresi bu özellikleri açıkça listelemelidir. (tüm özellikleri güncellemek istiyorsanız, fields:"*" listeleyebilirsiniz. Örneğin, aşağıdaki örnekte, sayfa başlığı ve boyutunun özellikleri, verilen kimliğe sahip sayfa için güncellenmelidir:

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)"
     }
   }
  ],
}

Bir sayfanın sheetId öğesini almak için e-tabloyu kullanın spreadsheets.get yöntemini kullanın.

Sayfa silme

Her iki API de belirli bir e-tablodan sayfa kaldırabilir.

v3 API'sı

Bir çalışma sayfasını silmek için işe çalışma sayfası feed'ini hedef çalışma sayfası girişinin edit URL'sine bir DELETE isteği gönder.

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

v4 API'sı

Bir sayfayı silmek için DeleteSheet bu bölümde spreadsheets.batchUpdate yöntemidir. POST isteğinin gövdesi, yalnızcasheetId silineceğini unutmayın. Örneğin:

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

Tek bir sayfanın sheetId özelliğini almak için e-tablo spreadsheets.get yöntemidir.

Satır verilerini alma

Liste satırları feed'i, Sheets API v3'ün sağladığı iki yöntemden biridir: Bir e-tablonun hücrelerindeki verilere erişme (diğeri hücre feed'i'dir). İlgili içeriği oluşturmak için kullanılan satır feed'inin amacı yaygın e-tablo işlemlerini (satır satır okuma, satır satır satır ekleme, sıralama) yapar, ancak bunu uygun olmayan bazı varsayımlarda bulunur. bazı görevler için. Özellikle, liste feed'i boş satırların feed olduğunu varsayar zorunlu başlıkların bulunduğu bir e-posta adresinin ilk satırında yer aldığını sayfasına gitmelidir.

E-Tablolar API v4 ise, satıra özgüdür. Bunun yerine, sayfa hücresi verilerine belirli bir A1 gösterimi kullanılarak gereken aralıklar. İlgili içeriği oluşturmak için kullanılan aralıklar hücre blokları, satırların tamamı, sütunların tamamı veya tüm sayfa olabilir. API ayrık hücre kümelerine de erişebilir.

v3 API'sı

Belirli bir çalışma sayfasındaki listeye dayalı feed'in URL'sini belirlemek için çalışma sayfası feed'i ve ilgili çalışma sayfası girişinde liste feed'i URL'sini bulun.

Liste tabanlı bir feed almak için liste feed'i URL'sine bir GET isteği gönderin. değiştirin. Örneğin:

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

Bu isteğe verilen yanıtta, diğer özelliklerinin yanı sıra ekleyebilirsiniz. Bağımsız hücrelere (zorunlu) sayfa başlığı satırında sağlanan adlar. Örneğin, burada tek satırlı bir giriştir:

<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>

Varsayılan olarak, liste feed'inde döndürülen satırlar satır sırasına göre döndürülür. Sheets API v3, bu sırayı değiştirmek için sorgu parametreleri sağlar.

Ters sırada:

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

Belirli bir sütuna göre sıralama:

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

Sheets API v3, belirli satırların yapılandırılmış bir sorgusu (sütun başlıklarıyla referans alınır):

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

v4 API'sı

Sheets API v4'te satırlar spreadsheets.values.get veya spreadsheets.values.batchGet yöntemlerine göz atın. Örneğin, aşağıdaki "Sheet1" içindeki tüm satırları döndürür:

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

Bu isteğe verilen yanıt aşağıdakine benzer bir yapıya sahiptir:

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

Tamamı alınırken, sondaki boş hücreler yanıta dahil edilmez satır, sütun veya e-tablo olarak ayarlayabilirsiniz.

Sheets API v4'te satır sırası sorgusu için eşdeğerleri yok E-Tablolar API v3 tarafından sağlanan parametreler. Tersine sıralama önemsizdir. basitçe döndürülen values dizisini ters sırada işler. Sütuna göre sıralama değil desteklenir, ancak sayfadaki verileri sıralamak için (kullanmak istediğiniz SortRange gibi) ve sonra da bunu okuyabilirsiniz.

Sheets API v4 şu anda Sheets API v3 yapılandırılmış sorguları için doğrudan bir eşdeğeri yoktur. Ancak, alakalı verileri alabilir ve gereken şekilde sıralayabilirsiniz.

Yeni bir veri satırı ekleme

API'lerden birini kullanarak bir sayfaya yeni bir veri satırı ekleyebilirsiniz.

v3 API'sı

Belirli bir çalışma sayfasındaki listeye dayalı feed'in URL'sini belirlemek için çalışma sayfası feed'i ve ilgili çalışma sayfası girişinde yayının URL'sini bulun.

Veri satırı eklemek için yayın URL'sine POST isteği gönderin. değiştirin. Örneğin:

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

POST isteğinin gövdesinde, satır verileri için bir giriş bulunmalıdır ekleyin:

<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>

Yeni satırlar, belirtilen sayfanın sonuna eklenir.

v4 API'sı

Sheets API v4'te spreadsheets.values.append yöntemidir. Aşağıdaki örnekte, son "Sayfa1" içindeki tablo oluşturabilirsiniz.

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

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

Ayrıca, Sheets API v4, belirli satır öğeleri içeren özelliklerini ve biçimlendirmeyi AppendCells içindeki talep sayısı spreadsheets.batchUpdate.

Yeni verilerin bulunduğu bir satırı düzenleme

Her iki API de satır verilerinin yeni değerlerle güncellenmesine olanak tanır.

v3 API'sı

Bir veri satırını düzenlemek için liste feed'ini inceleyin öğesini tıklayın. öğesinin içeriğini güncelleyin gerektiği şekilde yazın. Kullandığınız girişteki kimlik değerinin tam olarak mevcut girişin kimliğiyle eşleşir.

Giriş güncellendikten sonra, PUT söz konusu satır girişinde sağlanan edit URL'sine istek gövdesi değiştirin. Örneğin:

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'sı

Sheets API v4'te bir satırı düzenlemek için Göstermek istediğiniz satırın A1 gösterimini bir düzenleme ve düzenleme spreadsheets.values.update üzerine yazılmasını isteyebilirsiniz. Belirtilen aralığın yalnızca satırdaki ilk hücre; Google Etiket Yöneticisi, değerleri için de geçerlidir. Bunun yerine çok hücreli bir aralık belirtirseniz sağladığınız değerler bu aralığa uymalıdır; değilse API, hatası.

Aşağıdaki örnek istek ve istek gövdesi, "Sayfa1"in dördüncü satırı:

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

Satır verilerini şuradan da güncelleyebilirsiniz: spreadsheet.values.batchUpdate yöntemini kullanarak birden fazla dönüşüm değeri için bu yöntemi kullanmak satır veya hücre güncellemeleri alın.

Ayrıca Sheets API v4 ile hücre özelliklerini düzenleyebilir ve hücreleri biçimlendirmek için UpdateCells veya RepeatCell içindeki talep sayısı spreadsheets.batchUpdate.

Satır silme

Her iki API de satırların silinmesini destekler. Silinen bir satır altındaki satırlar bir yukarı itilir.

v3 API'sı

Bir satırı silmek için önce liste feed'i ve ardından satır girişinde sağlanan edit URL'sine bir DELETE isteği gönderin. Bu, satırı güncellemek için kullanılan URL'dir.

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

Değiştirilmiş bir satırı silmediğinizden emin olmak için bunu aldığınızdan sonra başka bir istemci tarafından yapılan bir HTTP If-Match başlığı ekleyin orijinal satırın ETag değerini içeren bir satır öğesi seçin. Orijinal URL'yi, satır öğesinin ETag değerini bulmak için kullanabilirsiniz.

Başka bir kullanıcının güncelleme yapıp yapmadığına bakmadan satırı silmek istiyorsanız kullanın, ardından If-Match: * kullanın ve ETag'i eklemeyin. (Bu durumda, satırı silmeden önce geri almanız gerekmez.)

v4 API'sı

Sheets API v4 ile satır silme işlemi, bir spreadsheet.batchUpdate tarafından gerçekleştirilir. DeleteDimension kullanan bir yöntem çağrısı isteği gönderin. Bu istek, sütunları kaldırmak için de kullanılabilir ve geliştiriciler, ve bir satırın veya sütunun yalnızca bir kısmını kaldırmayı seçin. Örneğin, işlemi, belirtilen kimliğe (satır dizinleri) sahip bir sayfanın 6. satırını kaldırır sıfır tabanlıdır, startIndex'i içerir ve endIndex hariçtir):

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

Bir sayfanın sheetId özelliği spreadsheet.get yöntemidir.

Hücre verilerini alma

Sheets API v3, bir depoda depolanan tüm verilere temel erişim için bir e-tablo kullanarak yapabilirsiniz. Okuma erişimi için, hücre feed'i tüm sayfayı sağlayabilir bir dizi sorgu parametresi tarafından tanımlanan sayfa hücre aralığı, yalnızca tek bir blok halinde yapılır. Ayrık aralıkların alınması gerekir. ek GET istekleri kullanılarak ayrı ayrı güncellenir.

Sheets API v4, bir sayfadaki herhangi bir hücre verisi kümesini (ör. ayrık aralık) ekleyebilirsiniz. Sheets API v3, hücre içeriğini yalnızca giriş değerleri (kullanıcının klavyeden gireceği şekilde) ve/veya formül (sayısalsa); Sheets API v4, değerlere tam erişim izni verir. formüller, biçimlendirme, köprüler, veri doğrulama ve diğer özellikler.

v3 API'sı

Belirli bir çalışma sayfasındaki hücre tabanlı feed'in URL'sini belirlemek için çalışma sayfası feed'i ve ilgili çalışma sayfası girişinde hücre feed'inin URL'sini bulun.

Hücre tabanlı bir feed almak için hücre feed'i URL'sine bir GET isteği gönderin. değiştirin. Örneğin:

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

Hücrelere, satır ve sütun numarası kullanılarak başvuruda bulunulur. Tek bir spesifik getiriliyor aralık max-row, min-row, max-col ve min-col kullanılarak yapılabilir sorgu parametreleridir. Örneğin, aşağıda belirtilen sütundaki tüm hücreleri alır 2. satırdan itibaren 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, alınan hücrelerin inputValue değerini döndürür. kullanıcının Google E-Tablolar kullanıcısına yazacağı değer arayüzün yerini alır. inputValue, değişmez bir değer olabilir kullanabilirsiniz. API bazen bir numericValue döndürür; örneğin, formül bir sayıyla sonuçlandığında. Örneğin, bir yanıtta aşağıdakine benzer bir yapıda girişler oluşturabilirsiniz:

<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'sı

Bir spreadsheets.values.get veya spreadsheets.values.batchGet yöntemini kullanın. Örneğin, aşağıdaki satır 2 ile başlayan "Sayfa2"nin D sütunundaki hücreleri döndürür. sütun-ana sıraya ve girildiği şekliyle döndüren formüllere göre (boşluktan geçiyor) hücreler atlanır):

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

Bu isteğe verilen yanıt yapı olarak şuna benzer:

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

Kullanımı daha verimli spreadsheet.values.batchGet birden fazla hücre verisi aralığı almayı planlıyorsanız. Şunu istiyorsanız: biçimlendirme, veri alışverişi ve spreadsheet.get yönteminin kullanılması gerekir.

Hücreyi düzenleme

Sheets API v3, web sayfası için bir PUT komutu vererek hücre içeriğini düzenlemenize olanak tanır. istek gövdesi olarak, değiştirilmiş hücre girişini içeren hücre feed'i.

E-Tablolar API v4 ise spreadsheets.values.update ve spreadsheets.values.batchUpdate yöntemlerine göz atacağız.

v3 API'sı

Tek bir hücrenin içeriğini düzenlemek için önce hücre feed'i. Giriş, bir düzenleme URL'si içeriyor. Girişi, içeriği yansıtacak şekilde güncelleyin istediğiniz verileri seçip URL'yi düzenleme URL'sine bir PUT isteği gönderin istek gövdesi olarak, güncellenmiş hücre girişini yazın. Örneğin, hücre D2'yi (R2C4) bir SUM formülü içerecek şekilde günceller:

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'sı

Sheets API v4'te tek hücre düzenleme işlemi spreadsheets.values.update yöntemidir. Bu yöntem, ValueInputOption sorgu parametresi gerektirir. giriş verilerinin E-Tablolar kullanıcı arayüzü (USER_ENTERED) veya ayrıştırılmamış ve olduğu gibi alınmış (RAW). Örneğin, aşağıdaki örnekte gösterildiği gibi, D2 hücresi bir formülle güncellenir:

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

Birden çok hücre düzenlemesi yapıyorsanız spreadsheets.values.batchUpdate tek bir istekte bulunmak için farklı bir yöntem kullanır.

Toplu istek aracılığıyla birden fazla hücreyi düzenleme

Her iki API de birden çok hücrenin içeriğinde değişiklik yapmaya olanak tanır tek bir (toplu) istekle ekleyebilirsiniz. Toplu istek tarafından başvurulan hücreler zorunlu bir aralıkta olmak zorunda değildir.

Toplu işlemdeki bir veya daha fazla hücre düzenlemesinin başarısız olması durumunda Sheets API v3 diğerlerinin başarılı olmasını sağlar. Ancak Sheets API v4 hata döndürüyor güncellemelerden herhangi biri başarısız olursa ve söz konusu durumda bunların hiçbiri uygulanmaz.

v3 API'sı

Birden fazla hücreyi düzenlemek için önce bir hücre feed'i alın çalışma sayfası için de kullanılabilecektir. Giriş, bir toplu URL içeriyor. POST gönder ve bu URL için istekte bulunduğunuz hücreleri açıklayan bir istek hücrenin içeriğini güncelleyin. POST isteği ve istek gövdesi aşağıdakine benzer bir yapıya sahiptir:

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 alanı, gruptaki isteği benzersiz bir şekilde tanımlamalıdır. Hücre düzenlemeleri için batch:operation alanı update olmalıdır. gs:cell. hücreyi satır ve sütun numarasına göre tanımlar ve yeni veriler sunar dokunun. id, güncellenecek hücrenin tam URL'sini içerir. link,href hücre kimliği. Bu alanların tümü her giriş için zorunludur.

v4 API'sı

E-Tablolar API v4, spreadsheets.values.batchUpdate yöntemidir.

Birden çok hücreyi, şununla bir POST isteği göndererek düzenleyebilirsiniz: istek gövdesinde belirtilen veri değişiklikleri. Örneğin:

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"]]
       }
  ]
}

Aralık olarak tek bir hücre belirttiyseniz, sağlanan tüm değerler sol üst koordinat olarak ilgili hücreyle başlayarak sayfaya yazılır. Bunun yerine çok hücreli bir aralık belirtirseniz, sağladığınız değerlerin sığması gerekir. tam olarak bu aralığı kullanabiliriz. yoksa API hata döndürür.