Google Sheets #2 के साथ Apps Script की बुनियादी बातें: स्प्रेडशीट, Sheets, और रेंज

1. परिचय

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

आप इन चीज़ों के बारे में जानेंगे

  • Apps Script में स्प्रेडशीट, शीट, और रेंज को दिखाने का तरीका.
  • SpreadsheetApp और Spreadsheet क्लास के साथ चालू (खुली) स्प्रेडशीट को ऐक्सेस करने, बनाने, और उसका नाम बदलने का तरीका.
  • Sheet क्लास का इस्तेमाल करके, शीट और #39; के कॉलम/पंक्ति के ओरिएंटेशन में बदलाव करने का तरीका.
  • Range क्लास का इस्तेमाल करके, सेल या डेटा के ग्रुप को तय करने, चालू करने, मूव करने, और क्रम से लगाने का तरीका जानें.

शुरू करने से पहले

Apps Script की बुनियादी जानकारी वाली Google Sheets प्लेलिस्ट में यह दूसरा कोडलैब (कोड बनाना सीखना) है. शुरू करने से पहले, पहला कोडलैब (कोड बनाना सीखना) पूरा करें: मैक्रो और कस्टम फ़ंक्शन.

आपको इनकी ज़रूरत होगी

  • इस प्लेलिस्ट के पिछले कोडलैब में एक्सप्लोर किए गए बेसिक ऐप्लिकेशन स्क्रिप्ट के विषयों को समझना.
  • Apps Script एडिटर की बुनियादी जानकारी
  • Google Sheets के बारे में बुनियादी जानकारी
  • Sheets A1 नोटेशन को पढ़ने की सुविधा
  • JavaScript और उसकी String क्लास के बारे में बुनियादी जानकारी

अगले सेक्शन में स्प्रेडशीट सेवा की मुख्य क्लास के बारे में बताया गया है.

2. स्प्रेडशीट सेवा के बारे में जानकारी

स्प्रेडशीट में चार क्लास की बुनियाद होती है: SpreadsheetApp, Spreadsheet, Sheet, और Range. इस सेक्शन में इन क्लास के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि ये #39 किसलिए इस्तेमाल की जाती है.

SpreadsheetApp क्लास

स्प्रेडशीट, शीट, और रेंज के बारे में ज़्यादा जानने से पहले, आपको उनकी पैरंट क्लास की समीक्षा कर लेनी चाहिए: SpreadsheetApp. कई स्क्रिप्ट SpreadsheetApp तरीकों को कॉल करके शुरू होती हैं, क्योंकि वे आपकी Google Sheets फ़ाइलों को शुरुआती पॉइंट ऐक्सेस कर सकती हैं. SpreadsheetApp को स्प्रेडशीट सेवा की मुख्य क्लास माना जा सकता है. SpreadsheetApp क्लास के बारे में यहां ज़्यादा जानकारी नहीं दी गई है. हालांकि, इस कोडलैब (कोड बनाना सीखना) में, आपको इस क्लास को समझने में मदद करने के लिए, उदाहरण और कसरतें, दोनों मिल सकती हैं.

स्प्रेडशीट, शीट, और उनकी क्लास

Sheets शब्द के तौर पर, स्प्रेडशीट एक Google Sheets फ़ाइल होती है (Google Drive में स्टोर की जाती है) जिसमें पंक्तियों और कॉलम का डेटा मौजूद होता है. स्प्रेडशीट को कभी-कभी Google Sheet' के तौर पर भी जाना जाता है. यह उसी तरह होता है जिस तरह दस्तावेज़ को Google Docs' कहा जाता है.

आप Spreadsheet क्लास का इस्तेमाल करके Google Sheets फ़ाइल डेटा ऐक्सेस कर सकते हैं और उसमें बदलाव कर सकते हैं. आप इस फ़ाइल का इस्तेमाल, दूसरे फ़ाइल-लेवल ऑपरेशन के लिए भी कर सकते हैं, जैसे कि सहयोगियों को जोड़ना.

f00cc1a9eb606f77.png

स्प्रेडशीट के एक पेज** को अलग-अलग पेज पर दिखाया जाता है. इसे कभी-कभी " &tt>टैब" भी कहा जाता है. हर स्प्रेडशीट में एक या उससे ज़्यादा शीट हो सकती हैं. आप शीट-लेवल डेटा और सेटिंग को ऐक्सेस करने और उनमें बदलाव करने के लिए, Sheet** क्लास का इस्तेमाल कर सकते हैं. जैसे, पंक्तियों या डेटा के कॉलम को एक जगह से दूसरी जगह ले जाना.

39dbb10f83e3082.png

खास जानकारी में, Spreadsheet क्लास, शीट के कलेक्शन पर काम करती है और Google Drive में Google Sheets की फ़ाइल के बारे में बताती है. Sheet क्लास, स्प्रेडशीट में अलग-अलग शीट पर काम करती है.

रेंज क्लास

ज़्यादातर डेटा में बदलाव करने से जुड़ी कार्रवाइयों (उदाहरण के लिए, सेल डेटा को पढ़ना, लिखना या फ़ॉर्मैट करना) के ज़रिए यह तय करना ज़रूरी होता है कि कार्रवाई किन सेल पर लागू होती है. आप शीट में सेल के खास सेट चुनने के लिए, Range क्लास का इस्तेमाल कर सकते हैं. इस क्लास के इंस्टेंस रेंज को दिखाते हैं—शीट में एक या ज़्यादा पास के सेल का ग्रुप. आप श्रेणियों को उनकी पंक्ति और कॉलम नंबर या A1 नोटेशन का इस्तेमाल करके तय कर सकते हैं.

कोडलैब के बाकी हिस्से में, इन क्लास के साथ काम करने वाली स्क्रिप्ट और उनके तरीकों के उदाहरण दिखते हैं.

3. सेट अप करें

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

5376f721894b10d9.png

उदाहरण के लिए, जो स्प्रेडशीट आप इस्तेमाल कर रहे हैं उसकी एक कॉपी आपके Google Drive फ़ोल्डर में मौजूद है और उसे &कोटेशन की सूची में रखा गया है (&title) इस कोडलैब' व्यायाम को पूरा करने के लिए इस स्प्रैडशीट का उपयोग करें.

ध्यान रखें कि आप एक्सटेंशन और Apps स्क्रिप्ट पर क्लिक करके Google Sheets से स्क्रिप्ट एडिटर खोल सकते हैं.

पहली बार स्क्रिप्ट एडिटर में Apps Script प्रोजेक्ट खोलने पर, स्क्रिप्ट एडिटर आपके लिए स्क्रिप्ट प्रोजेक्ट और स्क्रिप्ट फ़ाइल, दोनों बनाता है.

अगले सेक्शन में, स्प्रेडशीट को बेहतर बनाने के लिए Spreadsheet क्लास इस्तेमाल करने का तरीका बताया गया है.

4. स्प्रेडशीट ऐक्सेस करना और उनमें बदलाव करना

इस सेक्शन में, स्प्रेडशीट को ऐक्सेस करने और उनमें बदलाव करने के लिए, SpreadsheetApp और Spreadsheet क्लास इस्तेमाल करने का तरीका जानें. दरअसल, एक्सरसाइज़ आपको स्प्रेडशीट का नाम बदलने और स्प्रेडशीट में डुप्लीकेट शीट का नाम बदलने का तरीका बताती हैं.

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

चालू स्प्रेडशीट का नाम बदलें

मान लें कि आप डिफ़ॉल्ट नाम, &बिना शीर्षक वाली स्प्रेडशीट की कॉपी &कोटेशन की कॉपी (शीर्षक) को ऐसे शीर्षक में बदलना चाहते थे जो आपकी स्प्रेडशीट का # दिखाता है. आप SpreadsheetApp और Spreadsheet क्लास के साथ ऐसा कर सकते हैं.

  1. स्क्रिप्ट एडिटर में, डिफ़ॉल्ट myFunction() कोड ब्लॉक को नीचे दिए गए कोड से बदलें:
function renameSpreadsheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  mySS.rename("2017 Avocado Prices in Portland, Seattle");
}
  1. अपनी स्क्रिप्ट सेव करने के लिए, 'सेव करें' गोल रोका पर क्लिक करें.
  2. अपने Apps स्क्रिप्ट प्रोजेक्ट का नाम बदलने के लिए, बिना शीर्षक वाला प्रोजेक्ट पर क्लिक करें. नए प्रोजेक्ट के नाम के रूप में &voto;Avocado कीमतें और कोटेशन डालें और नाम बदलें पर क्लिक करें.
  3. अपनी स्क्रिप्ट चलाने के लिए, फ़ंक्शन सूची से renameSpreadsheet चुनें और चलाएं पर क्लिक करें.
  4. स्क्रीन पर दिए गए निर्देशों का पालन करके मैक्रो को अनुमति दें. अगर आपको कोई &कोटेशन मिल रहा है, तो यह ऐप्लिकेशन#39;पुष्टि नहीं किया गया और मैसेज भेजा जा सकता है. इसके बाद, बेहतर पर क्लिक करें और एवोकडो की कीमत (असुरक्षित) पर जाएं पर क्लिक करें. अगली स्क्रीन पर, अनुमति दें पर क्लिक करें.

फ़ंक्शन के लागू होने के बाद, आपकी स्प्रेडशीट का फ़ाइल नाम बदल जाएगा:

226c7bc3c2fbf33e.png

आपके डाले गए कोड को देखते हैं. getActiveSpreadsheet() वाला तरीका, चालू स्प्रेडशीट के बारे में बताने वाला एक ऑब्जेक्ट दिखाता है. इसका मतलब यह है कि आपने जो एक्सपेरिमेंट स्प्रेडशीट बनाई है उसकी कॉपी. यह स्प्रेडशीट ऑब्जेक्ट, mySS वैरिएबल में स्टोर किया गया है. mySS पर rename(newName) को कॉल करने से Google Drive में मौजूद स्प्रेडशीट फ़ाइल का नाम बदल जाता है. यह पोर्टलैंड, सिएटल में 2017 की एवोकाडो कीमत का नाम बदल देता है;

mySS वैरिएबल, स्प्रेडशीट का रेफ़रंस है, इसलिए getActiveSpreadsheet() को बार-बार कॉल करने के बजाय, mySS पर Spreadsheet मेथड का इस्तेमाल करके, अपने कोड को ज़्यादा साफ़ और बेहतर बनाएं.

चालू शीट की डुप्लीकेट कॉपी बनाएं

आपकी मौजूदा स्प्रेडशीट में सिर्फ़ एक शीट है. शीट की कॉपी बनाने के लिए, आप Spreadsheet.duplicateActiveSheet() तरीके को कॉल कर सकते हैं:

  1. अपने स्क्रिप्ट प्रोजेक्ट में पहले से ही renameSpreadsheet() फ़ंक्शन के नीचे यह नया फ़ंक्शन जोड़ें:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();
}
  1. अपना स्क्रिप्ट प्रोजेक्ट सेव करें.
  2. अपनी स्क्रिप्ट चलाने के लिए, फ़ंक्शन सूची से duplicateAndOrganizeActiveSheet चुनें और चलाएं पर क्लिक करें.

आपकी स्प्रेडशीट में शीट के नए टैब को कॉपी करने के लिए, Sheets पर वापस जाएं और शीट_मूल और कोटेशन की कॉपी बनाएं.

d24f9f4ae20bf7d4.gif

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

अगले सेक्शन में, आप Sheet क्लास का इस्तेमाल करके, डुप्लीकेट शीट का नाम बदलें और उसे फ़ॉर्मैट करें.

5. Sheets क्लास की मदद से अपनी शीट को फ़ॉर्मैट करना

Sheet क्लास ऐसे तरीके उपलब्ध कराती है जिनसे स्क्रिप्ट को पढ़ने और अपडेट करने में मदद मिलती है. इस सेक्शन में आप Sheet कक्षा के तरीकों की मदद से शीट के नाम और कॉलम की चौड़ाई बदलने का तरीका जान सकते हैं.

शीट का नाम बदलें

शीट का नाम बदलना उतना ही आसान है जितना renameSpreadsheet() के स्प्रेडशीट में नाम बदलना. सिर्फ़ एक तरीके का कॉल करना ज़रूरी है.

  1. इसे चालू करने के लिए, Google Sheets में Sheet_Original शीट पर क्लिक करें.
  2. Apps Script में, duplicateAndOrganizeActiveSheet() फ़ंक्शन में बदलाव करें, ताकि इसका मिलान किया जा सके:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();

  // Change the name of the new sheet.
  duplicateSheet.setName("Sheet_" + duplicateSheet.getSheetId());
}
  1. फ़ंक्शन को सेव करें और चलाएं.

Google Sheets में, फ़ंक्शन चलाने पर एक डुप्लीकेट शीट बन जाती है और उसका नाम बदल जाता है:

91295f42354f62e7.gif

जोड़े गए कोड में, setName(name) तरीका इस्तेमाल करके शीट का नाम बदला जा सकता है. इसके लिए, getSheetID() का इस्तेमाल किया जाता है, ताकि शीट का यूआरएल आईडी #39 हो जाए. + ऑपरेटर, "Sheet_" स्ट्रिंग के आखिर में शीट आईडी को जोड़ता है.

शीट और #39 के कॉलम और पंक्तियों में बदलाव करना

आप अपनी शीट को फ़ॉर्मैट करने के लिए, Sheet क्लास का भी इस्तेमाल कर सकते हैं. उदाहरण के लिए, हम डुप्लीकेट शीट के कॉलम का आकार बदलने और फ़्रीज़ की गई पंक्तियों को जोड़ने के लिए, आपके duplicateAndOrganizeActiveSheet() फ़ंक्शन को अपडेट कर सकते हैं:

  1. इसे चालू करने के लिए, Google Sheets में Sheet_Original शीट पर क्लिक करें.
  2. Apps Script में, duplicateAndOrganizeActiveSheet() फ़ंक्शन में बदलाव करें, ताकि इसका मिलान किया जा सके:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();

  // Change the name of the new sheet.
  duplicateSheet.setName("Sheet_" + duplicateSheet.getSheetId());

  // Format the new sheet.
  duplicateSheet.autoResizeColumns(1, 5);
  duplicateSheet.setFrozenRows(2);
}
  1. फ़ंक्शन को सेव करें और चलाएं.

Google Sheets में, एक डुप्लीकेट शीट बनाई जाती है, उसका नाम बदला जाता है, चालू किया जाता है, और उसे फ़ॉर्मैट किया जाता है:

2e57c917ab157dad.gif

आपने जो कोड जोड़ा है वह शीट के कॉलम को पढ़ने में आसान बनाने के लिए autoResizeColumns(startColumn, numColumns) का इस्तेमाल करता है. setFrozenRows(rows) वाला तरीका, दी गई पंक्तियों की संख्या (दो मामलों में) को फ़्रीज़ कर देता है. इससे, स्प्रेडशीट स्प्रेडशीट में नीचे की ओर स्क्रोल करते समय हेडर की पंक्तियों को दिखता रहता है.

अगले सेक्शन में, आप रेंज और बुनियादी डेटा में बदलाव के बारे में जानेंगे.

6. रेंज क्लास के साथ डेटा को फिर से व्यवस्थित करना

Range क्लास और इसके तरीके, स्प्रेडशीट सेवा में ज़्यादातर डेटा में हेर-फेर और फ़ॉर्मैटिंग के विकल्प देते हैं.

इस सेक्शन में रेंज के साथ, डेटा में हेर-फेर करने की बुनियादी जानकारी दी गई है. इन तरीकों में, खास तौर पर Apps Script में रेंज को इस्तेमाल करने के तरीके पर फ़ोकस किया जाता है. हालांकि, इस प्लेलिस्ट के दूसरे कोडलैब को डेटा में बदलाव करने और डेटा को फ़ॉर्मैट करने के बारे में ज़्यादा जानकारी मिलती है.

रेंज बदलें

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

डेटा को कहीं और ले जाने के लिए, duplicateAndOrganizeActiveSheet() की अपने तरीके को अपडेट करें:

  1. इसे चालू करने के लिए, Google Sheets में Sheet_Original शीट पर क्लिक करें.
  2. Apps Script में, duplicateAndOrganizeActiveSheet() फ़ंक्शन में बदलाव करें, ताकि इसका मिलान किया जा सके:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();

  // Change the name of the new sheet.
  duplicateSheet.setName("Sheet_" + duplicateSheet.getSheetId());

  // Format the new sheet.
  duplicateSheet.autoResizeColumns(1, 5);
  duplicateSheet.setFrozenRows(2);

  // Move column F to column C.
  var myRange = duplicateSheet.getRange("F2:F");
  myRange.moveTo(duplicateSheet.getRange("C2"));
}
  1. फ़ंक्शन को सेव करें और चलाएं.

इस फ़ंक्शन को चलाने पर, एक डुप्लीकेट शीट बनती है, चालू होती है, और फ़ॉर्मैट होती है. साथ ही, कॉलम F के कॉन्टेंट को कॉलम C में भेज दिया जाता है:

10ea483aec52457e.gif

नए कोड में, बदलाव करने के लिए डेटा की रेंज की पहचान करने के लिए getRange(a1Notation) तरीके का इस्तेमाल किया जाता है. A1 नोटेशन "F2:F&कोटेशन; को विधि और #39;s पैरामीटर के रूप में इनपुट करके, आप कॉलम F (F1 को छोड़कर) तय करते हैं. अगर बताई गई सीमा मौजूद है, तो getRange(a1Notation) मैथड Range दिखाता है. कोड, myRange वैरिएबल में इंस्टेंस को स्टोर करता है, ताकि इसे आसानी से इस्तेमाल किया जा सके.

रेंज की पहचान होने के बाद, moveTo(target) का तरीका, myRange के कॉन्टेंट (वैल्यू और फ़ॉर्मैटिंग, दोनों) को इकट्ठा करके उन्हें मूव करता है. डेस्टिनेशन (कॉलम C) को A1 नोटेशन &Cot&Ct&ot; का इस्तेमाल करके बताया जाता है. यह किसी कॉलम के बजाय एक सेल है. डेटा को एक जगह से दूसरी जगह ले जाते समय, आपको टारगेट और डेस्टिनेशन रेंज के साइज़ से मिलान करने की ज़रूरत नहीं होती. Apps Script हर एक की पहली सेल को अलाइन करती है.

रेंज को क्रम से लगाएं

Range क्लास से आप सेल के ग्रुप को पढ़ सकते हैं, अपडेट कर सकते हैं, और व्यवस्थित कर सकते हैं. उदाहरण के लिए, आप Range.sort(sortSpecObj) तरीके का इस्तेमाल करके डेटा रेंज को क्रम से लगा सकते हैं:

  1. इसे चालू करने के लिए, Google Sheets में Sheet_Original शीट पर क्लिक करें.
  2. Apps Script में, duplicateAndOrganizeActiveSheet() फ़ंक्शन में बदलाव करें, ताकि इसका मिलान किया जा सके:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();

  // Change the name of the new sheet.
  duplicateSheet.setName("Sheet_" + duplicateSheet.getSheetId());

  // Format the new sheet.
  duplicateSheet.autoResizeColumns(1, 5);
  duplicateSheet.setFrozenRows(2);

  // Move column F to column C.
  var myRange = duplicateSheet.getRange("F2:F");
  myRange.moveTo(duplicateSheet.getRange("C2"));

  // Sort all the data using column C (Price information).
  myRange = duplicateSheet.getRange("A3:D55");
  myRange.sort(3);
}
  1. फ़ंक्शन को सेव करें और चलाएं.

अब फ़ंक्शन, हमारी पिछली फ़ॉर्मैटिंग के अलावा, कॉलम C में कीमत की जानकारी का इस्तेमाल करके टेबल का पूरा डेटा क्रम से लगाता है:

a6cc9710245fae8d.png

नया कोड A3:D55 को कवर करने वाली एक नई रेंज बताने के लिए getRange(a1Notation) का इस्तेमाल करता है (कॉलम हेडर को छोड़कर पूरी टेबल). इसके बाद, टेबल को क्रम से लगाने के लिए, कोड के ज़रिए sort(sortSpecObj) का तरीका कॉल किया जाता है. यहां, sortSpecObj पैरामीटर को कॉलम के हिसाब से क्रम में लगाना है. यह तरीका, रेंज को क्रम से लगाता है. इससे, दिखाए गए कॉलम की वैल्यू सबसे कम से लेकर सबसे ज़्यादा (बढ़ती हुई वैल्यू) की तरफ़ जाती हैं. sort(sortSpecObj) का तरीका, क्रम से लगाने की ज़्यादा जटिल शर्तें पूरी कर सकता है, लेकिन आपको यहां उनकी ज़रूरत नहीं है. आप तरीका संदर्भ दस्तावेज़ में वे सभी अलग-अलग तरीके देख सकते हैं जिनसे आप क्रम से लगाने वाली रेंज को कॉल कर सकते हैं.

बधाई हो, आपने कोडलैब की सभी कसरतें पूरी कर ली हैं. अगला सेक्शन इस कोडलैब के मुख्य बिंदुओं की समीक्षा करता है और इस प्लेलिस्ट के अगले कोडलैब की झलक दिखाता है.

7. नतीजा

आप इस कोडलैब के आखिर में पहुंच गए हैं. अब आप Apps स्क्रिप्ट में स्प्रेडशीट सेवा की ज़रूरी क्लास और शर्तों का इस्तेमाल कर सकते हैं और उन्हें तय कर सकते हैं.

आप अगले कोडलैब (कोड बनाना सीखना) पर जाने के लिए तैयार हैं.

क्या आपको यह कोडलैब मददगार लगा?

हां नहीं

हमने क्या-क्या शामिल किया है

  • Apps Script में स्प्रेडशीट, शीट, और रेंज को दिखाने का तरीका.
  • SpreadsheetApp, Spreadsheet, Sheet, और Range क्लास के कुछ बुनियादी इस्तेमाल.

अगला कदम क्या है

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

डेटा के साथ काम करना पर अगला कोडलैब देखें.