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

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

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

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

नोटेशन और शर्तें

v3 एपीआई का इस्तेमाल किसी स्प्रेडशीट में मौजूद शीट को "वर्कशीट" के तौर पर करने के लिए किया जाता है. यह "शीट" शब्द का समानार्थी है का इस्तेमाल करता है.

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

v3 एपीआई, सूची फ़ीड; इसे इस पेज पर rowId प्लेसहोल्डर से दिखाया गया है.

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

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

वर्शन 3 एपीआई

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

https://spreadsheets.google.com/feeds

जो इसके लिए एक अन्य नाम है

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

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

वर्शन 4 एपीआई

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 के दायरे का इस्तेमाल करें.

किसको दिखाई दे

API के पुराने वर्शन में, विज़िबिलिटी शब्द का इस्तेमाल उपलब्धता देखें.

वर्शन 3 एपीआई

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

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

वर्शन 4 एपीआई

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

अनुमान की रिपोर्ट

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

वर्शन 3 एपीआई

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

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

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

वर्शन 4 एपीआई

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

उदाहरण के लिए, निम्न क्वेरी केवल किसी स्प्रेडशीट में शीट:

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

स्प्रेडशीट बनाएं

वर्शन 3 एपीआई

Sheets API v3 में नई स्प्रेडशीट बनाने की सुविधा नहीं है; इसके बजाय, Drive API Files.create पर जाएं तरीका का इस्तेमाल करके नई स्प्रेडशीट फ़ाइलें बनाई जा सकती हैं. इसके लिए ज़रूरी है https://www.googleapis.com/auth/drive दायरे का एलान करने के लिए आवेदन.

वर्शन 4 एपीआई

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

पुष्टि किए गए उपयोगकर्ता के लिए स्प्रेडशीट की सूची बनाना

वर्शन 3 एपीआई

Sheets API v3 फ़ीड की मदद से कोई ऐप्लिकेशन, ऐसी स्प्रेडशीट जिन्हें वह उपयोगकर्ता ऐक्सेस कर सकता है जिसकी पुष्टि हो चुकी है. स्प्रेडशीट फ़ीड एंडपॉइंट यह है:

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

वर्शन 4 एपीआई

Sheets API v4 में यह कार्रवाई करने की सुविधा नहीं है. हमारा सुझाव है कि आप: Drive.file के स्कोप का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन को स्प्रेडशीट चुनने के लिए Google पिकर.

ऐसे मामलों में जहां स्प्रेडशीट की लिस्टिंग करना ज़रूरी होता है, वहां इसकी नकल की जा सकती है 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 वाले तरीके से यह जानकारी ऐक्सेस की जा सकती है. इसके अलावा, और भी बहुत कुछ किया जा सकता है.

वर्शन 3 एपीआई

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

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>

वर्शन 4 एपीआई

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
          },
          ...
       },
       ...
      },
      ...
  ],
  ...
}

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

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

वर्शन 3 एपीआई

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>

वर्शन 4 एपीआई

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

वर्शन 3 एपीआई

किसी वर्कशीट का शीर्षक या साइज़ बदलने के लिए, वर्कशीट फ़ीड और चाहिए, जिसमें 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>

वर्शन 4 एपीआई

साइज़, टाइटल, और शीट की अन्य प्रॉपर्टी अपडेट करने के लिए, updateSheetProperties के अनुरोध को spreadsheets.batchUpdate तरीका. 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 तरीके का इस्तेमाल करके.

शीट को मिटाना

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

वर्शन 3 एपीआई

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

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

वर्शन 4 एपीआई

किसी शीट को मिटाने के लिए, DeleteSheet के अनुरोध में spreadsheets.batchUpdate तरीका. 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 संकेतन का इस्तेमाल करके ज़रूरी रेंज. कॉन्टेंट बनाने रेंज, सेल के ब्लॉक, पूरी पंक्तियों, पूरे कॉलम या पूरी शीट के तौर पर हो सकती हैं. एपीआई, सेल के अलग-अलग सेट को भी ऐक्सेस कर सकता है.

वर्शन 3 एपीआई

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

सूची पर आधारित फ़ीड को फिर से पाने के लिए, सूची फ़ीड के यूआरएल पर 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

वर्शन 4 एपीआई

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 स्ट्रक्चर्ड क्वेरी के बराबर नहीं है. हालांकि, आप प्रासंगिक डेटा पुनर्प्राप्त कर सकते हैं और इसे अपने ऐप्लिकेशन में ज़रूरत के मुताबिक क्रम से लगा सकते हैं.

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

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

वर्शन 3 एपीआई

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

डेटा की लाइन जोड़ने के लिए, पोस्ट के यूआरएल पर 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>

तय की गई शीट के आखिर में नई पंक्तियां जोड़ दी जाती हैं.

वर्शन 4 एपीआई

Sheets API v4 की मदद से, पंक्तियों को जोड़ने के लिए, spreadsheets.values.append तरीका. नीचे दिए गए उदाहरण में, आखिरी लाइन के नीचे डेटा की एक नई लाइन लिखी गई है "Sheet1" में टेबल दिखाता है.

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/append/Sheet1
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

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

इसके अलावा, Sheets API v4 की मदद से, शीट में मौजूद किसी खास सेल को प्रॉपर्टी और फ़ॉर्मैटिंग AppendCells में अनुरोध spreadsheets.batchUpdate.

नए डेटा वाली लाइन में बदलाव करना

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

वर्शन 3 एपीआई

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

एंट्री अपडेट होने के बाद, 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>

वर्शन 4 एपीआई

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

अनुरोध और अनुरोध का मुख्य हिस्सा, "Sheet1" की चौथी पंक्ति:

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

आप spreadsheet.values.batchUpdate तरीका; अगर आप अपने कॉलम में जोड़े गए अलग-अलग पंक्ति या सेल अपडेट.

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

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

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

वर्शन 3 एपीआई

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

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

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

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

वर्शन 4 एपीआई

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

किसी शीट के sheetId को spreadsheet.get तरीके का इस्तेमाल करके.

सेल का डेटा वापस पाएं

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

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

वर्शन 3 एपीआई

किसी दी गई वर्कशीट के लिए सेल-आधारित फ़ीड का यूआरएल पता करने के लिए, वर्कशीट फ़ीड और सेल फ़ीड का यूआरएल ढूंढने के लिए, वर्कशीट में जोड़े जाने वाले फ़ॉर्म का इस्तेमाल करें.

सेल-आधारित फ़ीड को फिर से पाने के लिए, सेल फ़ीड के यूआरएल पर 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>

वर्शन 4 एपीआई

इस नंबर पर कॉल करके सेल डेटा वापस पाएं 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 सेल का कॉन्टेंट बदलने के तरीके.

वर्शन 3 एपीआई

किसी एक सेल की सामग्री में बदलाव करने के लिए, सबसे पहले सेल की एंट्री यहां देखें: सेल फ़ीड शामिल है. एंट्री में बदलाव करने का यूआरएल शामिल है. कॉन्टेंट दिखाने के लिए, एंट्री को अपडेट करें सेल को इंस्टॉल करने के लिए कहें. इसके बाद, बदलाव करने वाले यूआरएल के लिए PUT का अनुरोध करें इसमें अनुरोध के मुख्य हिस्से के तौर पर, अपडेट की गई सेल की जानकारी डालें. उदाहरण के लिए, SUM फ़ॉर्मूला शामिल करने के लिए, सेल D2 (R2C4) को अपडेट किया जाता है:

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>

वर्शन 4 एपीआई

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 से गड़बड़ी का मैसेज मिलता है अगर बैच में से कोई भी अपडेट पूरा नहीं हो पाता है और उनमें से किसी को भी लागू नहीं करता है.

वर्शन 3 एपीआई

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

वर्शन 4 एपीआई

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

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