सामान्य लेखन

Google Sheets API की मदद से, सेल, रेंज, रेंज के सेट, और पूरी शीट में वैल्यू और फ़ॉर्मूले लिखे जा सकते हैं. इस पेज पर दिए गए उदाहरणों में बताया गया है कि Sheets API के spreadsheets.values रिसॉर्स का इस्तेमाल करके, लिखने से जुड़ी कुछ सामान्य कार्रवाइयां कैसे की जा सकती हैं.

ध्यान दें कि सेल की वैल्यू को spreadsheet.batchUpdate तरीके का इस्तेमाल करके भी लिखा जा सकता है. यह तरीका तब काम आ सकता है, जब आपको सेल फ़ॉर्मैटिंग या अन्य ऐसी प्रॉपर्टी को एक साथ अपडेट करना हो जिन पर spreadsheets.values रिसॉर्स का कोई असर नहीं पड़ता. उदाहरण के लिए, अगर आपको किसी सेल की रेंज को एक शीट से दूसरी शीट में कॉपी करना है, तो सेल के फ़ॉर्मूले और सेल फ़ॉर्मैटिंग, दोनों को बदला जा सकता है. इसके लिए, spreadsheet.batchUpdate के साथ UpdateCellsRequest तरीके का इस्तेमाल किया जा सकता है.

हालांकि, वैल्यू को आसानी से लिखने के लिए, spreadsheets.values.update या spreadsheets.values.batchUpdate तरीके का इस्तेमाल करना आसान होता है.

इन उदाहरणों को एचटीटीपी अनुरोधों के तौर पर दिखाया गया है, ताकि ये किसी भाषा पर आधारित न हों. Google API की क्लाइंट लाइब्रेरी का इस्तेमाल करके, अलग-अलग भाषाओं में लिखने की सुविधा लागू करने का तरीका जानने के लिए, सेल की वैल्यू पढ़ना और लिखना लेख पढ़ें.

इन उदाहरणों में, प्लेसहोल्डर SPREADSHEET_ID से पता चलता है कि आपको स्प्रेडशीट आईडी कहां डालना है. यह आईडी, स्प्रेडशीट के यूआरएल से पता लगाया जा सकता है. A1 नोटेशन का इस्तेमाल करके, उन रेंज के बारे में बताया जाता है जिनमें लिखना है. उदाहरण के लिए, रेंज Sheet1!A1:D5 है.

एक रेंज लिखना

यहां दिए गए spreadsheets.values.update कोड के सैंपल में, नई और खाली स्प्रेडशीट से शुरू करके, किसी रेंज में वैल्यू लिखने का तरीका बताया गया है. ValueInputOption क्वेरी पैरामीटर ज़रूरी है. इससे यह तय होता है कि लिखी गई वैल्यू को पार्स किया गया है या नहीं. उदाहरण के लिए, किसी स्ट्रिंग को तारीख में बदला गया है या नहीं.

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

अनुरोध प्रोटोकॉल यहां दिखाया गया है.

PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:D5?valueInputOption=VALUE_INPUT_OPTION
{
  "range": "Sheet1!A1:D5",
  "majorDimension": "ROWS",
  "values": [
    ["Item", "Cost", "Stocked", "Ship Date"],
    ["Wheel", "$20.50", "4", "3/1/2016"],
    ["Door", "$15", "2", "3/15/2016"],
    ["Engine", "$100", "1", "3/20/2016"],
    ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
  ],
}

जवाब में एक UpdateValuesResponse ऑब्जेक्ट होता है. जैसे, यह ऑब्जेक्ट:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!A1:D5",
  "updatedRows": 5,
  "updatedColumns": 4,
  "updatedCells": 20,
}

इसके बाद, शीट कुछ ऐसी दिखेगी:

A B C D
1 आइटम लागत स्टॉक किया गया शिप करने की तारीख
2 पहिया 2,050 रुपये 4 1/3/2016
3 दरवाज़ा $15 2 15/3/2016
4 इंजन 100 डॉलर 1 20/3/2016
5 कुल 135.5 डॉलर 7 20/3/2016

किसी रेंज में चुनिंदा सेल में लिखना

किसी रेंज में वैल्यू लिखते समय, कुछ मौजूदा सेल में बदलाव करने से बचा जा सकता है. इसके लिए, उनसे जुड़े ऐरे एलिमेंट को null पर सेट करें. किसी सेल को खाली करने के लिए, उसमें एक खाली स्ट्रिंग ("") भी लिखी जा सकती है.

ऊपर दिए गए उदाहरण में इस्तेमाल की गई शीट से शुरू करके, यहां दिए गए spreadsheets.values.update कोड सैंपल में दिखाया गया है कि B1:D4 रेंज में वैल्यू कैसे लिखी जाती हैं. इसमें कुछ सेल को बिना बदलाव किए छोड़ दिया जाता है और कुछ को मिटा दिया जाता है. ValueInputOption क्वेरी पैरामीटर ज़रूरी है. इससे यह तय होता है कि लिखी गई वैल्यू को पार्स किया गया है या नहीं. उदाहरण के लिए, किसी स्ट्रिंग को तारीख में बदला गया है या नहीं.

अनुरोध का मुख्य हिस्सा, ValueRange ऑब्जेक्ट होता है. इसमें लिखने के लिए रेंज की वैल्यू के बारे में जानकारी होती है. majorDimension फ़ील्ड से पता चलता है कि अरे, कॉलम के हिसाब से व्यवस्थित की गई वैल्यू की सूचियां हैं.

अनुरोध प्रोटोकॉल यहां दिखाया गया है.

PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!B1?valueInputOption=VALUE_INPUT_OPTION
{
  "range": "Sheet1!B1",
  "majorDimension": "COLUMNS",
  "values": [
    [null,"$1","$2", ""],
    [],
    [null,"4/1/2016", "4/15/2016", ""]
  ]
}

यहां मौजूद values फ़ील्ड में, रेंज के हर कॉलम में किए गए बदलावों की सूची दी गई है. पहले ऐरे से पता चलता है कि B1 में कोई बदलाव नहीं किया जाना चाहिए (null ऐरे एलिमेंट की वजह से), जबकि B4 को खाली किया जाना चाहिए (खाली स्ट्रिंग). B2 और B3 की वैल्यू अपडेट हो गई हैं. तीसरी सरणी, कॉलम D पर वही कार्रवाइयां करती है. वहीं, दूसरी खाली सरणी से पता चलता है कि कॉलम C में कोई बदलाव नहीं करना है.

जवाब में, इस तरह का UpdateValuesResponse ऑब्जेक्ट शामिल होता है:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!B1:D5",
  "updatedRows": 3,
  "updatedColumns": 2,
  "updatedCells": 6,
}

इसके बाद, शीट कुछ ऐसी दिखेगी:

A B C D
1 आइटम लागत स्टॉक किया गया शिप करने की तारीख
2 पहिया 1.00 डॉलर 4 4/1/2016
3 दरवाज़ा INR90 2 4/15/2016
4 इंजन 1
5 कुल 3.00 डॉलर 7 4/15/2016

ध्यान दें कि इस अनुरोध से "कुल" लाइन में सीधे तौर पर कोई बदलाव नहीं होता. हालांकि, इसमें बदलाव होता है, क्योंकि इसकी सेल में ऐसे फ़ॉर्मूले होते हैं जो बदली गई सेल पर निर्भर करते हैं.

एक से ज़्यादा रेंज में लिखना

खाली शीट से शुरू करके, यहां दिए गए spreadsheets.values.batchUpdate कोड के सैंपल में दिखाया गया है कि Sheet1!A1:A4 और Sheet1!B1:D2 रेंज में वैल्यू कैसे लिखी जाती हैं. टारगेट रेंज में मौजूद वैल्यू बदल जाती हैं. अनुरोध के मुख्य हिस्से में ValueInputOption ऑब्जेक्ट होता है. इससे पता चलता है कि इनपुट डेटा को कैसे समझा जाए. साथ ही, इसमें लिखी गई हर रेंज के हिसाब से ValueRange ऑब्जेक्ट का एक कलेक्शन होता है. majorDimension फ़ील्ड से यह तय होता है कि शामिल की गई सरणियों को कॉलम या पंक्तियों की सरणियों के तौर पर समझा जाए.

अनुरोध प्रोटोकॉल यहां दिखाया गया है.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values:batchUpdate
{
  "valueInputOption": "VALUE_INPUT_OPTION",
  "data": [
    {
      "range": "Sheet1!A1:A4",
      "majorDimension": "COLUMNS",
      "values": [
        ["Item", "Wheel", "Door", "Engine"]
      ]
    },
    {
      "range": "Sheet1!B1:D2",
      "majorDimension": "ROWS",
      "values": [
        ["Cost", "Stocked", "Ship Date"],
        ["$20.50", "4", "3/1/2016"]
      ]
    }
  ]
}

जवाब में एक ऐसा ऑब्जेक्ट होता है जिसमें अपडेट की गई सेल के आंकड़े शामिल होते हैं. साथ ही, इसमें UpdateValuesResponse ऑब्जेक्ट की एक कैटगरी होती है. हर अपडेट की गई रेंज के लिए एक ऑब्जेक्ट होता है. उदाहरण के लिए:

{
  "spreadsheetId": SPREADSHEET_ID,
  "totalUpdatedRows": 4,
  "totalUpdatedColumns": 4,
  "totalUpdatedCells": 10,
  "totalUpdatedSheets": 1,
  "responses": [
    {
      "spreadsheetId": SPREADSHEET_ID,
      "updatedRange": "Sheet1!A1:A4",
      "updatedRows": 4,
      "updatedColumns": 1,
      "updatedCells": 4,
    },
    {
      "spreadsheetId": SPREADSHEET_ID,
      "updatedRange": "Sheet1!B1:D2",
      "updatedRows": 2,
      "updatedColumns": 3,
      "updatedCells": 6,
    }
  ],
}

इसके बाद, शीट कुछ ऐसी दिखेगी:

A B C D
1 आइटम लागत स्टॉक किया गया शिप करने की तारीख
2 पहिया 2,050 रुपये 4 1/3/2016
3 दरवाज़ा
4 इंजन
5

पार्स किए बिना वैल्यू लिखना

खाली शीट से शुरू करके, यहां दिए गए spreadsheets.values.update कोड के सैंपल में दिखाया गया है कि Sheet1!A1:E1 रेंज में वैल्यू कैसे लिखी जाती हैं. हालांकि, इसमें RAW ValueInputOption क्वेरी पैरामीटर का इस्तेमाल किया गया है, ताकि लिखी गई स्ट्रिंग को फ़ॉर्मूला, बूलियन या संख्या के तौर पर पार्स न किया जा सके. ये स्ट्रिंग के तौर पर दिखते हैं और शीट में टेक्स्ट अलाइनमेंट सही होता है.

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

अनुरोध प्रोटोकॉल यहां दिखाया गया है.

PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:E1?valueInputOption=RAW
{
  "range": "Sheet1!A1:E1",
  "majorDimension": "ROWS",
  "values": [
    ["Data", 123.45, true, "=MAX(D2:D4)", "10"]
  ],
}

जवाब में, इस तरह का UpdateValuesResponse ऑब्जेक्ट शामिल होता है:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!A1:E1",
  "updatedRows": 1,
  "updatedColumns": 5,
  "updatedCells": 5,
}

इसके बाद, शीट कुछ ऐसी दिखेगी:

A B C D E
1 Data 123.45 TRUE =MAX(D2:D4) 10
2

ध्यान दें कि "TRUE" बीच में है और यह एक बूलियन वैल्यू है. वहीं, "123.45" दाईं ओर है, क्योंकि यह एक संख्या है. साथ ही, "10" बाईं ओर है, क्योंकि यह एक स्ट्रिंग है. फ़ॉर्मूला पार्स नहीं किया गया है. साथ ही, यह स्ट्रिंग के तौर पर दिखता है.

वैल्यू जोड़ना

नीचे दी गई टेबल जैसी कोई शीट बनाएं:

A B C D
1 आइटम लागत स्टॉक किया गया शिप करने की तारीख
2 पहिया 2,050 रुपये 4 1/3/2016
3

नीचे दिए गए spreadsheets.values.append कोड के उदाहरण में, तीसरी लाइन से शुरू होने वाली वैल्यू की दो नई लाइनें जोड़ने का तरीका बताया गया है. ValueInputOption क्वेरी पैरामीटर ज़रूरी है. इससे यह तय होता है कि लिखी गई वैल्यू को पार्स किया गया है या नहीं. उदाहरण के लिए, किसी स्ट्रिंग को तारीख में बदला गया है या नहीं.

अनुरोध का मुख्य हिस्सा, ValueRange ऑब्जेक्ट होता है. इसमें लिखने के लिए रेंज की वैल्यू के बारे में जानकारी होती है. majorDimension फ़ील्ड से पता चलता है कि अरे, पंक्तियों के हिसाब से व्यवस्थित की गई वैल्यू की सूचियां हैं.

अनुरोध प्रोटोकॉल यहां दिखाया गया है.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:E1:append?valueInputOption=VALUE_INPUT_OPTION
{
  "range": "Sheet1!A1:E1",
  "majorDimension": "ROWS",
  "values": [
    ["Door", "$15", "2", "3/15/2016"],
    ["Engine", "$100", "1", "3/20/2016"],
  ],
}

जवाब में, इस तरह का AppendValuesResponse ऑब्जेक्ट शामिल होता है:

{
  "spreadsheetId": SPREADSHEET_ID,
  "tableRange": "Sheet1!A1:D2",
  "updates": {
    "spreadsheetId": SPREADSHEET_ID,
    "updatedRange": "Sheet1!A3:D4",
    "updatedRows": 2,
    "updatedColumns": 4,
    "updatedCells": 8,
  }
}

इसके बाद, शीट कुछ ऐसी दिखेगी:

A B C D
1 आइटम लागत स्टॉक किया गया शिप करने की तारीख
2 पहिया 2,050 रुपये 4 1/3/2016
3 दरवाज़ा $15 2 15/3/2016
4 इंजन 100 डॉलर 1 20/3/2016
5