Sheets API v3 से माइग्रेट करें

अगर आपके पास Google Sheets API v3 पर आधारित मौजूदा ऐप्लिकेशन हैं, तो उन्हें Google Sheets API v4 पर माइग्रेट किया जा सकता है. वर्शन 4, JSON पर आधारित है. इसका इंटरफ़ेस इस्तेमाल करना आसान है. साथ ही, इसमें कई ऐसी सुविधाएं जोड़ी गई हैं जो वर्शन 3 में उपलब्ध नहीं हैं.

इस पेज पर, Sheets API v3 के पुराने निर्देशों और Sheets API v4 में उनके बराबर के ऑपरेशन के बीच मैपिंग की जानकारी दी गई है. मैपिंग मुख्य रूप से spreadsheets.values कलेक्शन पर फ़ोकस करती है. यह कलेक्शन, सेल को सीधे पढ़ने और उसमें लिखने की सुविधा देता है. शीट जोड़ने या शीट की प्रॉपर्टी अपडेट करने जैसे दूसरे पहलुओं को स्प्रेडशीट कलेक्शन मैनेज करता है. ध्यान दें कि v4 एपीआई के JSON स्ट्रक्चर, v3 में इस्तेमाल किए गए एक्सएमएल स्ट्रक्चर के साथ काम नहीं करते.

Sheets v4 API में उपलब्ध संसाधनों के बारे में ज़्यादा जानकारी के लिए, एपीआई रेफ़रंस देखें.

नोटेशन और शब्द

v3 API, किसी स्प्रेडशीट में मौजूद शीट को "वर्कशीट" के तौर पर रेफ़र करता है. यह "शीट" शब्द के समान है, जिसका इस्तेमाल v4 API करता है.

एपीआई के लिए, अक्सर आपको उस स्प्रेडशीट का स्प्रेडशीट आईडी बताना होता है जिस पर काम किया जा रहा है. इसके लिए, अक्सर उस शीट का आईडी भी ज़रूरी होता है जिसमें बदलाव किया जा रहा है. ये वैल्यू, एपीआई एंडपॉइंट यूआरएल के हिस्से के तौर पर, क्वेरी पैरामीटर के तौर पर या अनुरोध के मुख्य हिस्से के तौर पर दिखती हैं. इस पेज में, प्लेसहोल्डर spreadsheetId और sheetId, क्रमशः स्प्रेडशीट और शीट आईडी को रेफ़र करते हैं. इस पेज पर बताए गए तरीकों का इस्तेमाल करते समय, इन जगहों पर असली आईडी डालें.

v3 API, अपने सूची फ़ीड का इस्तेमाल करके, वापस लाई गई लाइनों को भी एक आईडी असाइन करता है. इस पेज पर, इसे rowId प्लेसहोल्डर से दिखाया गया है.

अनुरोधों को अनुमति दें

आपका ऐप्लिकेशन चलने पर, वह उपयोगकर्ताओं से कुछ अनुमतियां मांगता है. आपके ऐप्लिकेशन में तय किए गए दायरों से यह तय होता है कि वह कौनसी अनुमतियां मांगेगा.

v3 API

Sheets API v3, अनुमति के एक दायरे के साथ काम करता है:

https://spreadsheets.google.com/feeds

जो

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

दोनों में से किसी भी स्कोप फ़ॉर्मैट का इस्तेमाल किया जा सकता है.

v4 API

Sheets API v4, स्कोप के इनमें से एक या एक से ज़्यादा सेट का इस्तेमाल करता है:

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

अगर आपके ऐप्लिकेशन को किसी उपयोगकर्ता की शीट या शीट की प्रॉपर्टी में बदलाव करने की ज़रूरत नहीं है, तो रीड-ओनली स्कोप का इस्तेमाल करें. अगर ऐप्लिकेशन को Drive का सामान्य ऐक्सेस नहीं चाहिए, तो Drive के स्कोप के बजाय स्प्रेडशीट के स्कोप का इस्तेमाल करें.

किसको दिखे

एपीआई के पुराने वर्शन में, किसी स्प्रेडशीट की उपलब्धता के बारे में बताने के लिए, दिखाई गई शब्द का इस्तेमाल किया जाता है.

v3 API

Sheets API v3, एंडपॉइंट में सीधे तौर पर दिखाता है कि डेटा दिख रहा है या नहीं. public स्प्रेडशीट को "वेब पर पब्लिश" किया गया है. इसलिए, एपीआई को अनुमति के बिना इसे ऐक्सेस करने की अनुमति है. वहीं, private स्प्रेडशीट को ऐक्सेस करने के लिए पुष्टि करना ज़रूरी है. स्प्रेडशीट आईडी के बाद एंडपॉइंट में, विज़िबिलिटी की जानकारी दी जाती है:

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

v4 API

Sheets API के नए वर्शन 4 में, साफ़ तौर पर यह नहीं बताया गया है कि डेटा किसको दिखेगा. एपीआई कॉल, स्प्रेडशीट आईडी का इस्तेमाल करके किए जाते हैं. अगर ऐप्लिकेशन के पास, बताई गई स्प्रेडशीट को ऐक्सेस करने की अनुमति नहीं है, तो गड़बड़ी का मैसेज दिखता है. ऐसा न करने पर, कॉल जारी रहता है.

अनुमान

Sheets API v3 में प्रोजेक्शन शब्द का इस्तेमाल, किसी एपीआई कॉल से मिले डेटा के सेट को रेफ़र करने के लिए किया जाता है. यह डेटा, एपीआई कॉल से मिलने वाला पूरा डेटा हो सकता है या एपीआई में तय किया गया कोई सबसेट. Sheets API v4, प्रोजेक्शन का इस्तेमाल नहीं करता. इसके बजाय, यह आपको यह कंट्रोल करने की सुविधा देता है कि कौनसा डेटा दिखाया जाए.

v3 API

Sheets API v3 में, प्रोजेक्शन की सिर्फ़ दो सेटिंग हो सकती हैं. full प्रोजेक्शन, उपलब्ध सभी जानकारी दिखाता है, जबकि basic वर्कशीट, सूची, और सेल फ़ीड के लिए, डेटा का छोटा और तय सबसेट दिखाता है. दिखने की सेटिंग की तरह ही, प्रोजेक्शन की जानकारी भी एपीआई एंडपॉइंट में दी जानी चाहिए (दिखने की सेटिंग के बाद):

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

basic प्रोजेक्शन से मिले डेटा का छोटा सबसेट, कोड को ज़्यादा बेहतर बनाने के लिए अहम होता है. हालांकि, इसे पसंद के मुताबिक नहीं बनाया जा सकता.

v4 API

Sheets API v4, पूरा डेटा सेट दिखा सकता है. हालांकि, यह Sheets API v3 की basic विज़िबिलिटी सेटिंग की तरह, तय किए गए सबसेट तय नहीं करता. स्प्रेडशीट कलेक्शन के तरीके, फ़ील्ड क्वेरी पैरामीटर का इस्तेमाल करके, दिखाए जाने वाले डेटा की संख्या को सीमित करते हैं.

उदाहरण के लिए, यहां दी गई क्वेरी से किसी स्प्रेडशीट में मौजूद सभी स्प्रेडशीट के टाइटल ही दिखते हैं:

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 तरीका उपलब्ध है. इसकी मदद से, स्प्रेडशीट जोड़ी जा सकती हैं, स्प्रेडशीट और शीट की प्रॉपर्टी सेट की जा सकती हैं, और नाम वाली रेंज जोड़ी जा सकती हैं. उदाहरण के लिए, नीचे दिया गया फ़ंक्शन एक नई स्प्रेडशीट बनाता है और उसे "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 में यह कार्रवाई उपलब्ध नहीं है. हमारा सुझाव है कि आप अपने ऐप्लिकेशन को माइग्रेट करें, ताकि स्प्रेडशीट चुनने के लिए, Google पिकर के साथ drive.file स्कोप का इस्तेमाल किया जा सके.

जिन मामलों में स्प्रेडशीट की सूची बनाना ज़रूरी है उनमें mimeType क्वेरी का इस्तेमाल करके, Drive API Files.list तरीके से स्प्रेडशीट की सूची बनाई जा सकती है:

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

वर्कशीट फ़ीड को इस एपीआई एंडपॉइंट से ऐक्सेस किया जा सकता है. इसके लिए, सही ऑथराइज़ेशन हेडर का इस्तेमाल करें:

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 के तरीके का इस्तेमाल, शीट प्रॉपर्टी और अन्य मेटाडेटा हासिल करने के लिए किया जा सकता है. यह Sheets 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
          },
          ...
       },
       ...
      },
      ...
  ],
  ...
}

स्प्रेडशीट में शीट जोड़ना

दोनों एपीआई की मदद से, किसी मौजूदा स्प्रेडशीट में नई शीट जोड़ी जा सकती हैं.

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

spreadsheets.batchUpdate के तरीके में, AddSheet का अनुरोध करके नई शीट जोड़ी जा सकती हैं. अनुरोध बॉडी के हिस्से के तौर पर, नई शीट के लिए शीट प्रॉपर्टी बताई जा सकती हैं. हालांकि, सभी प्रॉपर्टी देना ज़रूरी नहीं है. किसी मौजूदा शीट के लिए इस्तेमाल किया गया टाइटल देना गड़बड़ी है.

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 यूआरएल होना चाहिए. वर्कशीट का मेटाडेटा अपडेट करें और उसे बदलाव करने के यूआरएल पर, 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

शीट का साइज़, टाइटल, और अन्य प्रॉपर्टी अपडेट करने के लिए, spreadsheets.batchUpdate के तरीके में updateSheetProperties का अनुरोध करें. POST अनुरोध बॉडी में, बदली जाने वाली प्रॉपर्टी शामिल होनी चाहिए. साथ ही, fields पैरामीटर में उन प्रॉपर्टी की साफ़ तौर पर सूची होनी चाहिए. अगर आपको सभी प्रॉपर्टी अपडेट करनी हैं, तो उन सभी को सूची में शामिल करने के लिए, fields:"*" का इस्तेमाल शॉर्टहैंड के तौर पर करें. उदाहरण के लिए, यहां बताया गया है कि दिए गए आईडी वाली शीट के लिए, शीट का टाइटल और साइज़ प्रॉपर्टी अपडेट की जानी चाहिए:

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 यूआरएल पर DELETE अनुरोध भेजें.

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

v4 API

किसी शीट को मिटाने के लिए, spreadsheets.batchUpdate तरीके में DeleteSheet अनुरोध करें. POST अनुरोध के मुख्य हिस्से में, सिर्फ़ उस शीट का sheetId होना चाहिए जिसे मिटाना है. उदाहरण के लिए:

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

किसी एक शीट का sheetId पाने के लिए, स्प्रेडशीट spreadsheets.get के तरीके का इस्तेमाल करें.

पंक्ति का डेटा पाना

Sheets API v3, स्प्रेडशीट की सेल में मौजूद डेटा को ऐक्सेस करने के लिए दो तरीके उपलब्ध कराता है. इनमें से एक तरीका लाइन की सूची वाला फ़ीड है. दूसरा तरीका सेल फ़ीड है. पंक्तियों का फ़ीड, स्प्रेडशीट के सामान्य कामों (पंक्ति के हिसाब से पढ़ना, पंक्तियां जोड़ना, क्रम से लगाना) के साथ काम करता है. हालांकि, यह कुछ ऐसी गलतियां करता है जिसकी वजह से यह कुछ टास्क के लिए सही नहीं है. खास तौर पर, सूची फ़ीड यह मानता है कि खाली पंक्तियां, फ़ीड के आखिर में मौजूद होती हैं. साथ ही, यह भी मानता है कि ज़रूरी हेडर, स्प्रेडशीट की पहली पंक्ति में मौजूद होते हैं.

इसके उलट, Sheets API v4, पंक्ति के हिसाब से ऐक्सेस करने के तरीकों का इस्तेमाल नहीं करता. इसके बजाय, शीट सेल का डेटा ऐक्सेस करने के लिए, A1 नोटेशन का इस्तेमाल करके, ज़रूरी रेंज का रेफ़रंस दिया जाता है. रेंज, सेल के ब्लॉक, पूरी पंक्तियां, पूरे कॉलम या पूरी शीट हो सकती हैं. एपीआई, अलग-अलग सेल के सेट को भी ऐक्सेस कर सकता है.

v3 API

किसी वर्कशीट के लिए, सूची पर आधारित फ़ीड का यूआरएल तय करने के लिए, वर्कशीट फ़ीड को फिर से पाएं और अपनी पसंद की वर्कशीट एंट्री में, सूची फ़ीड का यूआरएल ढूंढें.

सूची पर आधारित फ़ीड को वापस पाने के लिए, अनुमति वाले सही हेडर का इस्तेमाल करके, सूची फ़ीड के यूआरएल पर GET अनुरोध भेजें. उदाहरण के लिए:

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

इस अनुरोध के जवाब में, कुछ और चीज़ों के साथ-साथ, खास पंक्तियों से जुड़ी एंट्री भी शामिल होती हैं. अलग-अलग सेल का रेफ़रंस, शीट के हेडर में दिए गए नामों से मिलता है. उदाहरण के लिए, यहां एक पंक्ति वाली एंट्री दी गई है:

<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 की मदद से, स्ट्रक्चर्ड क्वेरी (कॉलम हेडर के ज़रिए रेफ़रंस) का इस्तेमाल करके, खास पंक्तियों को फ़िल्टर भी किया जा सकता है:

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 में, Sheets API v3 के ज़रिए दिए गए पंक्ति के क्रम के क्वेरी पैरामीटर के बराबर पैरामीटर नहीं हैं. उलटे क्रम में लगाना आसान है; बस, रिटर्न किए गए values कलेक्शन को उलटे क्रम में प्रोसेस करें. कॉलम के हिसाब से क्रम से लगाने की सुविधा, डेटा पढ़ने के लिए काम नहीं करती. हालांकि, SortRange का इस्तेमाल करके, शीट में डेटा को क्रम से लगाया जा सकता है और फिर उसे पढ़ा जा सकता है.

फ़िलहाल, Sheets API v4 में Sheets API v3 की स्ट्रक्चर्ड क्वेरी के बराबर कोई क्वेरी नहीं है. हालांकि, अपने ऐप्लिकेशन में ज़रूरी डेटा को ढूंढा जा सकता है और ज़रूरत के हिसाब से उसे क्रम में लगाया जा सकता है.

डेटा की नई लाइन जोड़ना

इनमें से किसी भी एपीआई का इस्तेमाल करके, शीट में डेटा की नई लाइन जोड़ी जा सकती है.

v3 API

किसी वर्कशीट के लिए, सूची पर आधारित फ़ीड का यूआरएल तय करने के लिए, वर्कशीट फ़ीड को फिर से पाएं और अपनी पसंद की वर्कशीट एंट्री में पोस्ट का यूआरएल ढूंढें.

डेटा की लाइन जोड़ने के लिए, पोस्ट यूआरएल पर 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 की मदद से, spreadsheets.batchUpdate में AppendCells रिक्वेस्ट का इस्तेमाल करके, खास प्रॉपर्टी और फ़ॉर्मैटिंग वाली सेल जोड़ी जा सकती हैं.

नए डेटा की मदद से किसी पंक्ति में बदलाव करना

दोनों एपीआई, नई वैल्यू के साथ लाइन डेटा को अपडेट करने की अनुमति देते हैं.

v3 API

डेटा की किसी लाइन में बदलाव करने के लिए, सूची फ़ीड देखें और उस लाइन की एंट्री ढूंढें जिसे आपको अपडेट करना है. ज़रूरत के हिसाब से उस एंट्री के कॉन्टेंट को अपडेट करें. पक्का करें कि इस्तेमाल की जा रही एंट्री में आईडी की वैल्यू, मौजूदा एंट्री के आईडी से पूरी तरह मैच करती हो.

एंट्री अपडेट होने के बाद, उस पंक्ति की एंट्री को अनुरोध के मुख्य हिस्से के तौर पर इस्तेमाल करके, PUT अनुरोध भेजें. इसके लिए, अनुमति देने वाले सही हेडर का इस्तेमाल करें. यह अनुरोध, उस पंक्ति की एंट्री में दिए गए edit यूआरएल पर भेजें. उदाहरण के लिए:

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 अनुरोध करें. तय की गई रेंज में सिर्फ़ पंक्ति की पहली सेल का रेफ़रंस होना चाहिए. एपीआई, अनुरोध के साथ दी गई वैल्यू के आधार पर, अपडेट करने के लिए सेल का पता लगाता है. अगर आपने एक से ज़्यादा सेल की रेंज दी है, तो आपने जो वैल्यू दी है वे उस रेंज में होनी चाहिए. ऐसा न होने पर, एपीआई गड़बड़ी का मैसेज दिखाता है.

अनुरोध और अनुरोध के मुख्य हिस्से के इस उदाहरण में, "शीट1" की चौथी पंक्ति में डेटा जोड़ा गया है:

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

spreadsheet.values.batchUpdate के तरीके से भी पंक्ति का डेटा अपडेट किया जा सकता है. अगर आपको एक से ज़्यादा पंक्तियों या सेल में अपडेट करने हैं, तो इस तरीके का इस्तेमाल करना ज़्यादा बेहतर होगा.

इसके अलावा, Sheets API v4 की मदद से, spreadsheets.batchUpdate में UpdateCells या RepeatCell रिक्वेस्ट का इस्तेमाल करके, सेल की प्रॉपर्टी और फ़ॉर्मैटिंग में भी बदलाव किया जा सकता है.

पंक्ति मिटाना

दोनों एपीआई, लाइनों को मिटाने की सुविधा देते हैं. मिटाई गई पंक्ति को स्प्रेडशीट से हटा दिया जाता है और उसके नीचे की पंक्तियों को एक ऊपर ले जाया जाता है.

v3 API

किसी लाइन को मिटाने के लिए, सबसे पहले सूची फ़ीड से मिटाने के लिए लाइन को वापस पाएं. इसके बाद, लाइन की एंट्री में दिए गए edit यूआरएल पर DELETE अनुरोध भेजें. यह वही यूआरएल है जिसका इस्तेमाल लाइन को अपडेट करने के लिए किया जाता है.

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

अगर आपको यह पक्का करना है कि आपने ऐसी कोई पंक्ति मिटाई हो जिसे वापस पाने के बाद, किसी दूसरे क्लाइंट ने बदल दिया हो, तो एचटीटीपी If-Match हेडर शामिल करें. इसमें मूल पंक्ति की ETag वैल्यू शामिल होती है. एंट्री एलिमेंट के gd:etag एट्रिब्यूट की जांच करके, ओरिजनल पंक्ति की ETag वैल्यू का पता लगाया जा सकता है.

अगर आपको लाइन मिटानी है, भले ही आपने उसे वापस पाने के बाद किसी और ने अपडेट किया हो, तो If-Match: * का इस्तेमाल करें और ETag शामिल न करें. (इस मामले में, आपको लाइन को मिटाने से पहले उसे वापस लाने की ज़रूरत नहीं है.)

v4 API

Sheets API v4 की मदद से पंक्तियों को मिटाने के लिए, spreadsheet.batchUpdate तरीके का इस्तेमाल किया जाता है. इसके लिए, DeleteDimension अनुरोध का इस्तेमाल किया जाता है. इस अनुरोध का इस्तेमाल कॉलम हटाने के लिए भी किया जा सकता है. साथ ही, डेवलपर सिर्फ़ पंक्ति या कॉलम का कुछ हिस्सा हटाने का विकल्प भी चुन सकते हैं. उदाहरण के लिए, यह फ़ंक्शन दिए गए आईडी वाली शीट की छठी पंक्ति को हटा देता है. पंक्ति के इंडेक्स शून्य से शुरू होते हैं. इसमें startIndex शामिल होता है और endIndex शामिल नहीं होता:

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

spreadsheet.get तरीके का इस्तेमाल करके, किसी शीट का sheetId वापस पाया जा सकता है.

मोबाइल डेटा वापस पाना

Sheets API v3, स्प्रेडशीट में सेव किए गए सभी डेटा को बुनियादी तौर पर ऐक्सेस करने के लिए सेल फ़ीड उपलब्ध कराता है. सेल फ़ीड, रीड ऐक्सेस के लिए पूरी शीट का कॉन्टेंट या क्वेरी पैरामीटर के सेट से तय की गई शीट की सेल की रेंज दे सकता है. हालांकि, यह सिर्फ़ एक ब्लॉक के तौर पर दिया जा सकता है. अलग-अलग रेंज को अलग से GET अनुरोधों का इस्तेमाल करके वापस पाना होगा.

Sheets API v4, किसी शीट से सेल डेटा का कोई भी सेट वापस ला सकता है. इसमें एक-दूसरे से अलग कई रेंज भी शामिल हैं. Sheets API v3, सेल के कॉन्टेंट को सिर्फ़ इनपुट वैल्यू (जैसा कि उपयोगकर्ता कीबोर्ड पर डालता है) और/या फ़ॉर्मूला के आउटपुट (अगर अंकों में है) के तौर पर दिखा सकता है. वहीं, Sheets API v4, वैल्यू, फ़ॉर्मूला, फ़ॉर्मैटिंग, हाइपरलिंक, डेटा की पुष्टि करने की सुविधा, और अन्य प्रॉपर्टी का पूरा ऐक्सेस देता है.

v3 API

किसी वर्कशीट के लिए, सेल पर आधारित फ़ीड का यूआरएल तय करने के लिए, वर्कशीट फ़ीड की जांच करें और अपनी पसंद की वर्कशीट एंट्री में सेल फ़ीड का यूआरएल ढूंढें.

सेल पर आधारित फ़ीड को वापस पाने के लिए, सेल फ़ीड के यूआरएल पर GET अनुरोध भेजें. इसके लिए, सही ऑथराइज़ेशन हेडर का इस्तेमाल करें. उदाहरण के लिए:

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

सेल का रेफ़रंस, पंक्ति और कॉलम नंबर का इस्तेमाल करके दिया जाता है. किसी खास रेंज को फ़ेच करने के लिए, max-row, min-row, max-col, और min-col क्वेरी पैरामीटर का इस्तेमाल किया जा सकता है. उदाहरण के लिए, यह फ़ंक्शन कॉलम 4 (D) की सभी सेल को पंक्ति 2 से शुरू करके दिखाता है:

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 Sheets के यूज़र इंटरफ़ेस में टाइप करता है. inputValue, कोई लिटरल वैल्यू या फ़ॉर्मूला हो सकता है. एपीआई कभी-कभी 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"]]
      }]
}

अगर आपको सेल डेटा की कई रेंज वापस लानी हैं, तो spreadsheet.values.batchGet का इस्तेमाल करना ज़्यादा बेहतर होता है. अगर आपको फ़ॉर्मैटिंग जैसी सेल प्रॉपर्टी ऐक्सेस करनी हैं, तो spreadsheet.get का इस्तेमाल करना ज़रूरी है.

किसी सेल में बदलाव करना

Sheets API v3 की मदद से, सेल के कॉन्टेंट में बदलाव किया जा सकता है. इसके लिए, आपको सेल फ़ीड में PUT कमांड जारी करना होगा. साथ ही, अनुरोध के मुख्य हिस्से के तौर पर, बदली गई सेल एंट्री को शामिल करना होगा.

इसके उलट, Sheets API v4 में सेल के कॉन्टेंट में बदलाव करने के लिए, spreadsheets.values.update और spreadsheets.values.batchUpdate के तरीके उपलब्ध हैं.

v3 API

किसी एक सेल के कॉन्टेंट में बदलाव करने के लिए, सबसे पहले सेल फ़ीड में सेल की एंट्री ढूंढें. एंट्री में बदलाव करने का यूआरएल मौजूद है. सेल में अपनी पसंद का कॉन्टेंट दिखाने के लिए, एंट्री को अपडेट करें. इसके बाद, बदली गई सेल एंट्री को अनुरोध के मुख्य हिस्से के तौर पर इस्तेमाल करके, बदलाव करने के लिए यूआरएल पर 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 क्वेरी पैरामीटर की ज़रूरत होती है. इससे यह तय होता है कि इनपुट डेटा को Sheets के यूज़र इंटरफ़ेस (यूआई) (USER_ENTERED) में डाले गए डेटा के तौर पर माना जाए या उसे बिना पार्स किए, जैसा है वैसा ही इस्तेमाल किया जाए (RAW). उदाहरण के लिए, यह फ़ॉर्मूला सेल D2 को अपडेट करता है:

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

अगर एक से ज़्यादा सेल में बदलाव किए जा रहे हैं, तो एक अनुरोध में उन्हें लागू करने के लिए, spreadsheets.values.batchUpdate का इस्तेमाल करें.

एक साथ कई सेल में बदलाव करने के लिए, एक साथ कई अनुरोध करने की सुविधा का इस्तेमाल करना

दोनों एपीआई, एक ही (बैच) अनुरोध की मदद से, कई सेल के कॉन्टेंट में बदलाव करने की सुविधा देते हैं. बैच अनुरोध में जिन सेल का रेफ़रंस दिया गया है, ज़रूरी नहीं है कि वे एक-दूसरे से जुड़ी हों.

अगर बैच में सेल में किए गए एक या उससे ज़्यादा बदलाव लागू नहीं होते हैं, तो Sheets API v3 बाकी बदलावों को लागू कर देता है. हालांकि, अगर एक साथ किए गए अपडेट में से कोई भी अपडेट नहीं हो पाता है, तो Sheets API v4 गड़बड़ी का मैसेज दिखाता है. साथ ही, उस स्थिति में कोई भी अपडेट लागू नहीं करता.

v3 API

एक से ज़्यादा सेल में बदलाव करने के लिए, पहले वर्कशीट के लिए सेल फ़ीड पाएं. एंट्री में बैच यूआरएल शामिल है. इस यूआरएल पर POST अनुरोध भेजें. साथ ही, अनुरोध के मुख्य हिस्से में उन सेल के बारे में बताएं जिन्हें आपको अपडेट करना है और सेल का नया कॉन्टेंट. 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 में, अपडेट की जाने वाली सेल का पूरा यूआरएल होता है. link में href एट्रिब्यूट होना चाहिए, जिसमें सेल के आईडी का पूरा पाथ शामिल हो. हर एंट्री के लिए, इन सभी फ़ील्ड में जानकारी डालना ज़रूरी है.

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

अगर आपने रेंज के तौर पर एक सेल तय की है, तो दी गई सभी वैल्यू, शीट में उस सेल से शुरू होकर ऊपर बाईं ओर के कोऑर्डिनेट के तौर पर लिखी जाती हैं. अगर आपने एक से ज़्यादा सेल वाली रेंज दी है, तो दी गई वैल्यू उस रेंज में पूरी तरह से फ़िट होनी चाहिए. ऐसा न होने पर, एपीआई गड़बड़ी का मैसेज दिखाता है.