1. बिग डेटा ऐनलिसिस से लेकर स्लाइड प्रज़ेंटेशन तक
बड़े डेटा का विश्लेषण करने के लिए, डेटा साइंटिस्ट के पास कई टूल हैं. हालांकि, आखिर में विश्लेषकों को अब भी नतीजों को मैनेज करने की ज़रूरत है. काग़ज़ पर या डेटाबेस में मौजूद ऐसी बहुत सारी संख्याएं हैं जिनके बारे में अहम हिस्सेदारों को शायद ही पता हो. यह इंटरमीडिएट Google Apps Script कोडलैब, Google के दो डेवलपर प्लैटफ़ॉर्म (Google Workspace और Google Cloud Console) का इस्तेमाल करता है. इन प्लैटफ़ॉर्म की मदद से, उपयोगकर्ताओं को अपने-आप माइग्रेट होने की प्रोसेस पूरी हो जाती है.
Google Cloud के डेवलपर टूल की मदद से, डेटा का गहराई से विश्लेषण किया जा सकता है. इसके बाद, नतीजे लेकर उन्हें स्प्रेडशीट में डालें और डेटा वाला स्लाइड प्रज़ेंटेशन जनरेट करें. यह मैनेजमेंट को डेटा डिलीवर करने का बेहतर तरीका देता है. इस कोडलैब में Cloud Console के BigQuery एपीआई (ऐप्लिकेशन स्क्रिप्ट की बेहतर सेवा के तौर पर) और Google Sheets और Google Slides के लिए पहले से मौजूद Apps Script सेवाएं शामिल हैं.
वजह
इस कोडलैब का सैंपल ऐप्लिकेशन, इन अन्य कोड सैंपल से प्रेरित है:
- Google Apps Script BigQuery सेवा का सैंपल ऐप्लिकेशन, जिसे GitHub पर ओपन सोर्स किया गया है.
- ऐप्लिकेशन के सैंपल के तौर पर, स्प्रेडशीट डेटा से स्लाइड जनरेट करना डेवलपर के वीडियो में दिखाया गया है और इस ब्लॉग पोस्ट में पब्लिश किया गया है.
- Google Slides API कोडलैब में दिखाया गया सैंपल ऐप्लिकेशन.
हालांकि Slides API कोडलैब सैंपल ऐप्लिकेशन में BigQuery और Slides की सुविधाएं भी मिलती हैं, लेकिन यह कोडलैब के सैंपल ऐप्लिकेशन से कई मायनों में अलग है:
- उनका Node.js ऐप्लिकेशन बनाम हमारा Apps Script ऐप्लिकेशन.
- हम Apps Script सेवाओं का इस्तेमाल करते समय, REST API का इस्तेमाल करते हैं.
- वे Google Drive का इस्तेमाल करते हैं, लेकिन Google Sheets का नहीं. हालांकि, यह ऐप्लिकेशन Sheets का इस्तेमाल करता है, लेकिन Drive का नहीं.
इस कोडलैब के लिए, हम एक ही ऐप्लिकेशन में कई टेक्नोलॉजी को एक साथ लाना चाहते थे. साथ ही, हम चाहते थे कि कई टेक्नोलॉजी को एक साथ एक ही ऐप्लिकेशन में लाया जाए. इसके साथ ही, हम Google Cloud की सभी सुविधाओं और एपीआई को इस तरह से दिखाना चाहते हैं जो असल ज़िंदगी में इस्तेमाल के उदाहरण जैसा दिखता हो. इसका मकसद आपको अपने आइडिया पर काम करने के लिए प्रेरित करना है. साथ ही, Cloud Console और Google Workspace, दोनों का इस्तेमाल करना है, ताकि आपके संगठन और ग्राहकों के लिए मुश्किल समस्याएं हल की जा सकें.
आप इन चीज़ों के बारे में जानेंगे
- Google Apps Script की कई Google सेवाओं के साथ इस्तेमाल करने का तरीका
- बिग डेटा का विश्लेषण करने के लिए, Google BigQuery का इस्तेमाल कैसे करें
- Google शीट बनाने और उसमें डेटा डालने का तरीका
- Sheets में चार्ट बनाने का तरीका
- Sheets से Google Slides प्रज़ेंटेशन में डेटा और चार्ट ट्रांसफ़र करने का तरीका
आपको इनकी ज़रूरत होगी
- इंटरनेट ऐक्सेस करने वाला वेब ब्राउज़र
- Google खाता (Google Workspace खातों के लिए एडमिन की अनुमति ज़रूरी हो सकती है)
- Google Sheets के बारे में बुनियादी जानकारी
- Sheets A1 नोटेशन पढ़ने की सुविधा
- JavaScript की बुनियादी स्किल
- Apps Script डेवलपमेंट की जानकारी होना मददगार है. हालांकि, यह ज़रूरी नहीं है
2. सर्वे
इस कोडलैब/ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
Google Workspace के डेवलपर टूल इस्तेमाल करने का आपका अनुभव कैसा रहेगा और API?
खास तौर पर, Apps Script के साथ आपके अनुभव को कैसे रेटिंग दी जाएगी?
Cloud Console के डेवलपर टूल इस्तेमाल करने के आपके अनुभव को क्या रेटिंग देंगे और API?
3. खास जानकारी
आपको यह पता चल गया है कि यह कोडलैब किस बारे में है. इसके लिए:
- कोई मौजूदा Apps Script-BigQuery सैंपल लें और उसे चालू करें.
- सैंपल से, BigQuery पर क्वेरी भेजने और नतीजे पाने का तरीका जानें.
- एक Google शीट बनाएं और उसमें BigQuery के नतीजे शामिल करें.
- कोड में बदलाव करके, लौटाए गए डेटा में थोड़ा बदलाव करें और उसे शीट में शामिल करें.
- BigQuery डेटा का चार्ट बनाने के लिए, Apps Script में Sheets सेवा का इस्तेमाल करें.
- Google Slides प्रज़ेंटेशन बनाने के लिए Slides सेवा का इस्तेमाल करें.
- डिफ़ॉल्ट टाइटल स्लाइड में टाइटल और सबटाइटल जोड़ें.
- डेटा टेबल वाली स्लाइड बनाएं और उसमें शीट के डेटा सेल एक्सपोर्ट करें.
- दूसरी स्लाइड बनाएं और उसमें स्प्रेडशीट चार्ट डालें.
Apps Script, BigQuery, Sheets, और Slides के बैकग्राउंड की कुछ जानकारी के साथ शुरुआत करते हैं.
Google Apps Script और BigQuery
Google Apps Script, एक Google Workspace डेवलपमेंट प्लैटफ़ॉर्म है. यह Google REST API के लेवल की तुलना में अपग्रेड किए गए लेवल पर काम करता है. यह सर्वरलेस डेवलपमेंट और ऐप्लिकेशन होस्टिंग एनवायरमेंट है, जो सभी डेवलपर के लिए उपलब्ध है. असल में, Apps Script में Google Workspace की ऑटोमेशन सुविधा, एक्सटेंशन, और इंटिग्रेशन के लिए, बिना सर्वर वाला JavaScript रनटाइम होता है.
इसमें Node.js की तरह ही सर्वर साइड JavaScript का इस्तेमाल किया जाता है. हालांकि, यह तेज़ और एसिंक्रोनस इवेंट-ड्रिवन ऐप्लिकेशन होस्टिंग के बजाय, Google Workspace और Google की अन्य सेवाओं के साथ बेहतर इंटिग्रेशन पर फ़ोकस करता है. इसमें डेवलपमेंट एनवायरमेंट की सुविधा भी होती है. यह माहौल, आपकी पसंद से अलग हो सकता है. Apps Script की मदद से:
- ब्राउज़र पर आधारित कोड एडिटर का इस्तेमाल करके स्क्रिप्ट बनाएं. हालांकि,
clasp
का इस्तेमाल करते समय इन्हें स्थानीय तौर पर भी डेवलप किया जा सकता है. यह Apps Script के लिए कमांड-लाइन डिप्लॉयमेंट टूल है. - JavaScript के खास वर्शन में कोड लिखें, जिसे Google Workspace और Google की अन्य या बाहरी सेवाओं को ऐक्सेस करने के लिए कस्टमाइज़ किया गया है. इसके लिए, Apps Script की
URL Fetch
याJDBC
सेवाओं का इस्तेमाल करना होगा. - अनुमति कोड लिखने से बचा जा सकता है, क्योंकि Apps Script आपके लिए इसे मैनेज करती है.
- अपने ऐप्लिकेशन को होस्ट करने की ज़रूरत नहीं होती. यह क्लाउड में Google के सर्वर पर चलता और चलता है.
Apps Script, Google की अन्य टेक्नोलॉजी से दो अलग-अलग तरीकों से इंटरैक्ट करती है:
- पहले से मौजूद सेवा के तौर पर
- ऐडवांस सेवा के तौर पर
पहले से मौजूद सेवा में, उपयोगकर्ता के डेटा, Google के अन्य सिस्टम, और बाहरी सिस्टम के साथ इंटरैक्ट करने के लिए, बेहतर तरीके इस्तेमाल किए जा सकते हैं. बेहतर सेवा, Google Workspace API या Google REST API के चारों ओर मौजूद एक पतला रैपर होती है. ऐडवांस सेवाएं, REST API का पूरा कवरेज देती हैं. साथ ही, ये सेवाएं पहले से मौजूद सेवाओं के मुकाबले काफ़ी काम करती हैं. हालांकि, इनके लिए कोड की जटिलता की ज़रूरत होती है (साथ ही, पूरे REST API के मुकाबले इस्तेमाल करना आसान होता है). ऐडवांस सेवाओं का इस्तेमाल करने से पहले, स्क्रिप्ट प्रोजेक्ट के लिए भी ये सेवाएं चालू होनी चाहिए.
जब हो सके, डेवलपर को पहले से मौजूद सेवा का इस्तेमाल करना चाहिए, क्योंकि उनका इस्तेमाल करना ज़्यादा आसान होता है और वे बेहतर सेवाओं के अलावा भी बहुत कुछ करते हैं. हालांकि, कुछ Google API में सेवाएं पहले से मौजूद नहीं होती हैं. इसलिए, सिर्फ़ बेहतर सेवा ही विकल्प हो सकती है. उदाहरण के लिए, Google BigQuery में पहले से कोई सेवा मौजूद नहीं है, लेकिन BigQuery सेवा मौजूद है. BigQuery सेवा, Cloud Console की एक सेवा है. इसकी मदद से, Google BigQuery API का इस्तेमाल करके बड़े डेटा कॉर्पस (जैसे कि एक से ज़्यादा टेराबाइट) पर क्वेरी की जा सकती हैं. हालांकि, यह कुछ ही सेकंड में नतीजे दे सकती है.
Sheets और ऐक्सेस करें Apps Script में सेव की गई स्लाइड
BigQuery से अलग, Sheets और Slides में पहले से ही सेवाएं मौजूद होती हैं. उनके पास ऐसी बेहतर सेवाएं भी होती हैं जो सिर्फ़ एपीआई में मिलने वाली सुविधाओं को ऐक्सेस कर सकती हैं. कोड देखने से पहले, पहले से मौजूद Sheets और Slides सेवाओं के दस्तावेज़ देखें. ध्यान दें कि यहां Sheets और Slides की बेहतर सेवाओं के लिए भी दस्तावेज़ उपलब्ध हैं.
4. टास्क 1: BigQuery चलाकर, Sheets में नतीजों को लॉग करना
परिचय
हम इस पहले टास्क की मदद से, कोडलैब के इस मॉड्यूल का बड़ा हिस्सा कुछ करने जा रहे हैं. असल में, आगे बढ़ने के बाद, पूरे कोडलैब का आधा हिस्सा पूरा हो जाएगा. कई सब-सेक्शन में बांटकर, यहां:
- Google Apps Script और Cloud Console, दोनों प्रोजेक्ट बनाएं.
- BigQuery की बेहतर सेवा का ऐक्सेस चालू करें.
- स्क्रिप्ट एडिटर खोलें और ऐप्लिकेशन का सोर्स कोड डालें.
- ऐप्लिकेशन अनुमति देने की प्रोसेस (OAuth2) को नेविगेट करना.
- BigQuery को अनुरोध भेजने वाला ऐप्लिकेशन चलाएं.
- BigQuery के नतीजों का इस्तेमाल करके बनाई गई नई Google शीट की समीक्षा करें.
सेटअप
- Apps Script प्रोजेक्ट बनाने के लिए,
script.google.com
पर जाएं और नया प्रोजेक्ट पर क्लिक करें. - अपने Apps Script प्रोजेक्ट का नाम बदलने के लिए, बिना टाइटल वाले प्रोजेक्ट पर क्लिक करें. इसके बाद, अपने प्रोजेक्ट का टाइटल डालें और नाम बदलें पर क्लिक करें.
इसके बाद, BigQuery में डेटा को क्वेरी करने के लिए, आपको Cloud Console प्रोजेक्ट बनाना होगा.
- Cloud Console प्रोजेक्ट बनाने के लिए, इस शॉर्टकट लिंक का इस्तेमाल करके प्रोजेक्ट बनाएं, प्रोजेक्ट को कोई नाम दें, और बनाएं पर क्लिक करें.
- प्रोजेक्ट बनाने की प्रोसेस पूरी होने पर, पेज पर एक सूचना दिखती है. पक्का करें कि पेज में सबसे ऊपर मौजूद प्रोजेक्ट की सूची में, आपका नया प्रोजेक्ट चुना गया हो.
- मेनू क्लिक करें और API और सेवाएं > वह स्क्रीन जहां OAuth के लिए सहमति दी जाती है (डायरेक्ट लिंक).
- आंतरिक > अपने संगठन के Google Workspace उपयोगकर्ताओं के लिए, ऐप्लिकेशन बनाएं.
- ऐप्लिकेशन का नाम फ़ील्ड में, "बिग डेटा कोडलैब" डालें.
- उपयोगकर्ता सहायता और डेवलपर की संपर्क जानकारी फ़ील्ड के लिए, संपर्क ईमेल डालें.
- सेव करें और जारी रखें > पर क्लिक करें सेव करें और आगे बढ़ें.
- नेविगेशन बार में, ज़्यादा पर क्लिक करें. इसके बाद, प्रोजेक्ट सेटिंग (डायरेक्ट लिंक) चुनें.
- प्रोजेक्ट नंबर में दी गई वैल्यू को कॉपी करें. (कोडलैब में बाद में, एक अलग प्रोजेक्ट आईडी फ़ील्ड का इस्तेमाल किया जाता है.)
इसके बाद, आपको अपने Apps Script प्रोजेक्ट को Cloud Console प्रोजेक्ट से कनेक्ट करना होगा.
- App Script एडिटर में जाकर, प्रोजेक्ट सेटिंग पर क्लिक करें.
- Google Cloud Platform (GCP) प्रोजेक्ट में, प्रोजेक्ट बदलें पर क्लिक करें.
- प्रोजेक्ट नंबर डालें और प्रोजेक्ट सेट करें पर क्लिक करें.
- इसके बाद, BigQuery की बेहतर सेवा जोड़ने के लिए, एडिटर पर क्लिक करें.
- सेवाओं के बगल में, कोई सेवा जोड़ें पर क्लिक करें.
- 'सेवा जोड़ें' डायलॉग बॉक्स में, BigQuery API चुनें और जोड़ें पर क्लिक करें.
Cloud Console पर BigQuery API चालू करना आखिरी चरण है.
- ऐसा करने के लिए, Cloud Console पर जाएं और एपीआई और सेवाएं > डैशबोर्ड पर जाएं. (पक्का करें कि आप अब भी उसी प्रोजेक्ट पर हैं जिसे आपने तीसरे चरण में बनाया था.)
- एपीआई और सेवाएं चालू करें पर क्लिक करें.
- "big क्वेरी" खोजें और BigQuery API चुनें (BigQuery Data Transfer API नहीं). इसे चालू करने के लिए, चालू करें पर क्लिक करें.
अब आप ऐप्लिकेशन कोड डालने, अनुमति देने की प्रक्रिया पूरी करने, और इस ऐप्लिकेशन के काम करने का पहला अनुभव पाने के लिए तैयार हैं.
ऐप्लिकेशन अपलोड करें और उसे चलाएं
- स्क्रिप्ट एडिटर में, डिफ़ॉल्ट
myFunction()
कोड ब्लॉक को इस कोड से बदलें:
// File name for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud Console Project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into a Sheet. You must turn on
* the BigQuery advanced service before you can run this code.
* @see https://developers.google.com/apps-script/advanced/bigquery#run_query
* @see https://github.com/googleworkspace/apps-script-samples/blob/master/advanced/bigquery.gs
*
* @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
* @see https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BigQuery job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to Sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
}
- सेव करें पर क्लिक करें.
Code.gs
के बगल में, ज़्यादा पर क्लिक करें > नाम बदलें. टाइटल कोCode.gs
से बदलकरbq-sheets-slides.js
करें.- अब हम उस कोड की समीक्षा करेंगे जो BigQuery पर क्वेरी करके, नतीजों को Google शीट पर लिखता है. इसे
runQuery()
के सबसे ऊपरी हिस्से के पास देखा जा सकता है:
SELECT
LOWER(word) AS word,
SUM(word_count) AS count
FROM [bigquery-public-data:samples.shakespeare]
GROUP BY word
ORDER BY count
DESC LIMIT 10
यह क्वेरी, शेक्सपियर के काम के बारे में है. यह BigQuery के सार्वजनिक डेटासेट का हिस्सा है. इसमें उनके सभी कामों में सबसे ज़्यादा बार इस्तेमाल होने वाले 10 शब्द मिलते हैं. इन्हें लोकप्रियता के घटते क्रम में लगाया जाता है. जब आप कल्पना करते हैं कि इस कंपाइलेशन को हाथ से करने पर कितना काम होगा, तब आपको यह अंदाज़ा लग जाएगा कि BigQuery आपके लिए कितनी फ़ायदेमंद साबित हो सकता है.
यह फ़ंक्शन, ऐसे PROJECT_ID
वैरिएबल का भी एलान करता है जिसके लिए, Cloud Console के मान्य प्रोजेक्ट आईडी की ज़रूरत होती है. वैरिएबल के नीचे if
स्टेटमेंट इसलिए मौजूद होता है, ताकि प्रोजेक्ट आईडी के बिना ऐप्लिकेशन को आगे बढ़ने से रोका जा सके.
- अपने Cloud Console प्रोजेक्ट पर स्विच करें और नेविगेशन बार में ज़्यादा पर क्लिक करें. इसके बाद, प्रोजेक्ट सेटिंग चुनें.
- प्रोजेक्ट आईडी में दी गई वैल्यू कॉपी करें.
- ऐप्लिकेशन स्क्रिप्ट एडिटर पर वापस स्विच करें,
bq-sheets-slides.js
मेंPROJECT_ID
वैरिएबल ढूंढें, और वैल्यू जोड़ें. - सेव करें पर क्लिक करें > चलाएं.
- जारी रखने के लिए, अनुमतियां देखें पर क्लिक करें.
- स्क्रिप्ट के चलने के बाद, पहले से मौजूद एक्ज़ीक्यूशन लॉग खुलता है और स्क्रिप्ट की कार्रवाइयों को रीयल टाइम में लॉग करता है.
- जब एक्ज़ीक्यूशन लॉग में "काम पूरा हुआ" के बारे में बताया गया हो, तो अपने Google Drive (
drive.google.com
) पर जाएं और "शेक्सपियर के सभी कामों में सबसे ज़्यादा इस्तेमाल किए गए शब्द" नाम की Google शीट ढूंढें (याQUERY_NAME
वैरिएबल को असाइन किया गया नाम, अगर आपने इसे अपडेट किया है): - सबसे ज़्यादा इस्तेमाल होने वाले 10 शब्दों और उनकी कुल संख्या को घटते क्रम में देखने के लिए, स्प्रेडशीट खोलें:
टास्क 1 का सारांश
समीक्षा करने के लिए, आपने शेक्सपियर के सभी नाटकों के हर नाटक के हर शब्द पर क्वेरी करने वाला कोई कोड चलाया है. इसने शब्दों की गिनती की और उन्हें दिखने के घटते क्रम में लगाया. इस डेटा को दिखाने के लिए, आपने Google Sheets में पहले से मौजूद Apps Script सेवा का भी इस्तेमाल किया है.
आपने bq-sheets-slides.js
के लिए जिस कोड का इस्तेमाल किया है वह github.com/googlecodelabs/bigquery-sheets-slides पर, इस कोडलैब के GitHub रिपॉज़िटरी के step1
फ़ोल्डर में भी मिल सकता है. यह कोड, BigQuery की बेहतर सेवाओं वाले पेज के इस ओरिजनल उदाहरण से प्रेरित था. इसमें, थोड़ी अलग क्वेरी चलाई गई थी. इसमें शेक्सपियर के 10 या उससे ज़्यादा वर्णों वाले सबसे लोकप्रिय शब्दों को शामिल किया गया था. इसका उदाहरण GitHub रेपो में भी दिया गया है.
अगर आपकी दिलचस्पी ऐसी अन्य क्वेरी में है जिसे शेक्सपियर के काम या अन्य सार्वजनिक डेटा टेबल की मदद से बनाया जा सकता है, तो BigQuery की सैंपल टेबल की क्वेरी कैसे करें और GitHub के इस रेपो पर जाएं.
क्वेरी को Apps Script में चलाने से पहले, Cloud Console पर BigQuery पेज का इस्तेमाल करके भी क्वेरी चलाई जा सकती हैं. इसे खोजने के लिए, मेन्यू पर क्लिक करें और BigQuery यूज़र इंटरफ़ेस (यूआई) > पर जाएं एसक्यूएल वर्कस्पेस (डायरेक्ट लिंक). उदाहरण के लिए, यहां बताया गया है कि हमारी क्वेरी, BigQuery के ग्राफ़िकल इंटरफ़ेस पर कैसी दिखती है:
5. टास्क 2: Google Sheets में चार्ट बनाना
runQuery()
का मकसद BigQuery का इस्तेमाल करना और इसके डेटा के नतीजों को Google शीट को भेजना है. इसके बाद हमें डेटा का इस्तेमाल करके एक चार्ट बनाना होगा. आइए, createColumnChart()
नाम का एक नया फ़ंक्शन बनाते हैं. यह फ़ंक्शन Sheets को कॉल करता है newChart()
तरीका.
- Apps Script एडिटर में,
runQuery()
के बादbq-sheets-slides.js
मेंcreateColumnChart()
फ़ंक्शन जोड़ें. कोड, शीट हासिल करता है और पूरे डेटा के साथ एक कॉलमर चार्ट का अनुरोध करता है. डेटा रेंज, सेल A2 से शुरू होती है, क्योंकि पहली लाइन में कॉलम के हेडर होते हैं.
/**
* Uses spreadsheet data to create a column chart.
* @param {Spreadsheet} Spreadsheet containing results data
* @returns {EmbeddedChart} Visualizes the results
* @see https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
*/
function createColumnChart(spreadsheet) {
// Retrieve the populated (first) Sheet.
var sheet = spreadsheet.getSheets()[0];
// Data range in Sheet is from cell A2 to B11.
var START_CELL = 'A2'; // skip header row
var END_CELL = 'B11';
// Place chart on Sheet starting on cell E5.
var START_ROW = 5; // row 5
var START_COL = 5; // col E
var OFFSET = 0;
// Create & place chart on the Sheet using above values.
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
}
createColumnChart()
फ़ंक्शन के लिए स्प्रेडशीट ऑब्जेक्ट पैरामीटर की ज़रूरत होती है, इसलिए हमेंrunQuery()
को अपडेट करना होगा, ताकि हमेंcreateColumnChart()
को पास किया जा सकने वालाspreadsheet
ऑब्जेक्ट वापस मिल सके. शीट बनाने की प्रोसेस पूरी करने के बाद,runQuery()
के आखिर मेंspreadsheet
ऑब्जेक्ट दिखाएं:
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
// NEW: Return the spreadsheet object for later use.
return spreadsheet;
}
runQuery()
औरcreateColumnChart()
, दोनों को कॉल करने के लिएcreateBigQueryPresentation()
फ़ंक्शन बनाएं. सबसे सही तरीका, BigQuery और चार्ट बनाने के फ़ंक्शन को तर्क के साथ अलग-अलग करना है:
/**
* Runs the query, adds data and a chart to a spreadsheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
createColumnChart(spreadsheet);
}
- आपने ऊपर दो ज़रूरी चरण पूरे किए: स्प्रेडशीट ऑब्जेक्ट लौटाना और एंट्री फ़ंक्शन बनाना.
runQuery()
को और इस्तेमाल करने लायक बनाने के लिए, हमें लॉग लाइन कोrunQuery()
सेcreateBigQueryPresentation()
में ले जाना होगा. आपका तरीका अब कुछ ऐसा दिखना चाहिए:
/**
* Runs a BigQuery query, adds data and a chart to a spreadsheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl()); // MOVED HERE
createColumnChart(spreadsheet);
}
ऊपर दिए गए बदलावों के साथ (PROJECT_ID
को छोड़कर), आपका bq-sheets-slides.js
अब ऐसा दिखना चाहिए. यह कोड GitHub के रेपो के step2
में भी मिलता है.
// File name for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud Console Project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into a sheet. You must turn on
* the BigQuery advanced service before you can run this code.
* @see https://developers.google.com/apps-script/advanced/bigquery#run_query
* @see https://github.com/googleworkspace/apps-script-samples/blob/master/advanced/bigquery.gs
*
* @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
* @see https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BigQuery job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
// Return the spreadsheet object for later use.
return spreadsheet;
}
/**
* Uses spreadsheet data to create a columnar chart.
* @param {Spreadsheet} Spreadsheet containing results data
* @returns {EmbeddedChart} Visualizes the results
* @see https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
*/
function createColumnChart(spreadsheet) {
// Retrieve the populated (first) sheet.
var sheet = spreadsheet.getSheets()[0];
// Data range in sheet is from cell A2 to B11.
var START_CELL = 'A2'; // skip header row
var END_CELL = 'B11';
// Place chart on Sheet starting on cell E5.
var START_ROW = 5; // row 5
var START_COL = 5; // col E
var OFFSET = 0;
// Create & place chart on the sheet using above values.
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
}
/**
* Runs a BigQuery query, adds data and a chart to a spreadsheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
createColumnChart(spreadsheet);
}
स्क्रिप्ट एडिटर में, अपना स्क्रिप्ट प्रोजेक्ट सेव करें. इसके बाद, फ़ंक्शन की सूची से createBigQueryPresentation
को चुनें और Run पर क्लिक करें. इसके पूरा होने के बाद, आपके Google Drive में एक और स्प्रेडशीट बन जाती है. हालांकि, इस बार शीट में डेटा के बगल में एक चार्ट शामिल हो जाता है:
6. टास्क 3: नतीजों के डेटा को स्लाइड डेक में डालें
कोडलैब के आखिरी हिस्से में, Google Slides प्रज़ेंटेशन बनाना और टाइटल वाली स्लाइड में टाइटल और सबटाइटल जोड़ना और फिर डेटा सेल और चार्ट के लिए स्लाइड बनाना शामिल है.
- Apps Script एडिटर में,
createColumnChart()
के बादbq-sheets-slides.js
मेंcreateSlidePresentation()
फ़ंक्शन जोड़ें. स्लाइड डेक का सारा काम इसी फ़ंक्शन में होता है. स्लाइड डेक बनाने से शुरुआत करें. इसके बाद, डिफ़ॉल्ट टाइटल वाली स्लाइड में टाइटल और सबटाइटल जोड़ें.
/**
* Create presentation with spreadsheet data and a chart
* @param {Spreadsheet} Spreadsheet containing results data
* @param {EmbeddedChart} Sheets chart to embed on a slide
* @returns {Presentation} Slide deck with the results
* @see https://developers.google.com/apps-script/reference/slides/presentation
*/
function createSlidePresentation(spreadsheet, chart) {
// Create the presentation.
var deck = SlidesApp.create(QUERY_NAME);
// Populate the title slide.
var [title, subtitle] = deck.getSlides()[0].getPageElements();
title.asShape().getText().setText(QUERY_NAME);
subtitle.asShape().getText().setText('using Google Cloud Console and Google Workspace APIs:\n' +
'Google Apps Script, BigQuery, Sheets, Slides');
createSlidePresentation()
में अगला चरण, Google शीट से सेल के डेटा को हमारे नए स्लाइड डेक में इंपोर्ट करना है. फ़ंक्शन में यह कोड स्निपेट जोड़ें:
// Data range to copy is from cell A1 to B11
var START_CELL = 'A1'; // include header row
var END_CELL = 'B11';
// Add the table slide and insert an empty table on it with
// the dimensions of the data range; fails if the sheet is empty.
var tableSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
var sheetValues = spreadsheet.getSheets()[0].getRange(
START_CELL + ':' + END_CELL).getValues();
var table = tableSlide.insertTable(sheetValues.length, sheetValues[0].length);
// Populate the table with spreadsheet data.
for (var i = 0; i < sheetValues.length; i++) {
for (var j = 0; j < sheetValues[0].length; j++) {
table.getCell(i, j).getText().setText(String(sheetValues[i][j]));
}
}
createSlidePresentation()
में आखिरी चरण में एक और स्लाइड जोड़ना, हमारी स्प्रेडशीट से चार्ट इंपोर्ट करना, औरPresentation
ऑब्जेक्ट दिखाना है. फ़ंक्शन में यह कोड स्निपेट जोड़ें:
// Add a chart slide and insert the chart on it.
var chartSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
chartSlide.insertSheetsChart(chart);
// Return the presentation object for later use.
return deck;
}
- अब हमारा फ़ंक्शन पूरा हो गया है, इसलिए इसके सिग्नेचर को फिर से देखें.
createSlidePresentation()
के लिए, स्प्रेडशीट और चार्ट ऑब्जेक्ट पैरामीटर, दोनों की ज़रूरत होती है. हमनेSpreadsheet
ऑब्जेक्ट को लौटाने के लिए, पहले हीrunQuery()
में बदलाव किया है. हालांकि, हमेंcreateColumnChart()
में वैसा ही बदलाव करना होगा, ताकि यह चार्ट ऑब्जेक्ट (EmbeddedChart
) दिखाए.createColumnChart()
पर वापस जाएं और फ़ंक्शन के आखिर में नीचे दिया गया कोड स्निपेट जोड़ें:
// NEW: Return the chart object for later use.
return chart;
}
createColumnChart()
अब चार्ट ऑब्जेक्ट दिखाता है. इसलिए, हमें चार्ट को किसी वैरिएबल में सेव करना होगा. इसके बाद, हम स्प्रेडशीट और चार्ट वैरिएबल दोनों कोcreateSlidePresentation()
में पास करते हैं. साथ ही, हम नई बनाई गई स्प्रेडशीट का यूआरएल लॉग करते हैं, इसलिए नई स्लाइड प्रज़ेंटेशन का यूआरएल भी लॉग करते हैं. अपनेcreateBigQueryPresentation()
को अपडेट करें, ताकि वह कुछ ऐसा दिखे:
/**
* Runs a BigQuery query, adds data and a chart to a spreadsheet,
* and adds the data and chart to a new slide presentation.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
var chart = createColumnChart(spreadsheet); // UPDATED
var deck = createSlidePresentation(spreadsheet, chart); // NEW
Logger.log('Results slide deck created: %s', deck.getUrl()); // NEW
}
createBigQueryPresentation()
को सेव करें और फिर से चलाएं. इसके लागू होने से पहले, Google Slides प्रज़ेंटेशन देखने और मैनेज करने के लिए आपके ऐप्लिकेशन को उपयोगकर्ता से अनुमतियों के एक और सेट की ज़रूरत होती है. इन अनुमतियों की समीक्षा करने और इन्हें अनुमति देने के बाद, ये पहले की तरह काम करने लगेंगी.- अब, बनाई जाने वाली स्प्रेडशीट के अलावा, आपको तीन स्लाइड (टाइटल, डेटा टेबल, डेटा चार्ट) के साथ नया Slides प्रज़ेंटेशन भी मिलेगा. इस प्रज़ेंटेशन का ब्यौरा नीचे दिया गया है:
7. नतीजा
बधाई हो, आपने ऐसा ऐप्लिकेशन बना लिया है जो Google क्लाउड के दोनों ओर इस्तेमाल करता है. यह Google BigQuery से अनुरोध करता है. यह अपने सार्वजनिक डेटासेट के लिए क्वेरी करता है, नतीजों को सेव करने के लिए Google Sheets स्प्रेडशीट बनाता है, डेटा के आधार पर एक चार्ट जोड़ता है, और आखिर में स्प्रेडशीट से डेटा और चार्ट के नतीजे दिखाने वाला Google Slides प्रज़ेंटेशन बनाता है.
आपने तकनीकी तौर पर यही किया है. मोटे तौर पर, आपने बड़े डेटा का विश्लेषण करने के बजाय, बड़े पैमाने पर काम करने वाले लोगों को डेटा का विश्लेषण करने का फ़ैसला दिया. आप हिस्सेदारों को इस बारे में बता सकते हैं. ये सभी काम, कोड का इस्तेमाल करके अपने-आप होते हैं. हमें उम्मीद है कि इस सैंपल से, आपको इसे अपने प्रोजेक्ट के हिसाब से बनाने की प्रेरणा मिलेगी. इस कोडलैब के आखिर में, हम आपको इस बारे में कुछ सुझाव देंगे कि ऐप्लिकेशन के इस सैंपल को और बेहतर कैसे बनाया जा सकता है.
आखिरी टास्क में किए गए बदलावों के साथ (PROJECT_ID
को छोड़कर), आपका bq-sheets-slides.js
अब ऐसा दिखना चाहिए:
/**
* Copyright 2018 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// File name for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud Console Project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into a spreadsheet. You must turn on
* the BigQuery advanced service before you can run this code.
* @see https://developers.google.com/apps-script/advanced/bigquery#run_query
* @see https://github.com/googleworkspace/apps-script-samples/blob/master/advanced/bigquery.gs
*
* @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
* @see https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BigQuery job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
// Return the spreadsheet object for later use.
return spreadsheet;
}
/**
* Uses spreadsheet data to create a column chart.
* @param {Spreadsheet} Spreadsheet containing results data
* @returns {EmbeddedChart} Visualizes the results
* @see https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
*/
function createColumnChart(spreadsheet) {
// Retrieve the populated (first) sheet.
var sheet = spreadsheet.getSheets()[0];
// Data range in sheet is from cell A2 to B11.
var START_CELL = 'A2'; // skip header row
var END_CELL = 'B11';
// Place chart on sheet starting on cell E5.
var START_ROW = 5; // row 5
var START_COL = 5; // col E
var OFFSET = 0;
// Create & place chart on the sheet using above values.
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
// Return the chart object for later use.
return chart;
}
/**
* Create presentation with spreadsheet data and a chart
* @param {Spreadsheet} Spreadsheet containing results data
* @param {EmbeddedChart} Sheets chart to embed on a slide
* @returns {Presentation} Slide deck with the results
* @see https://developers.google.com/apps-script/reference/slides/presentation
*/
function createSlidePresentation(spreadsheet, chart) {
// Create the presentation.
var deck = SlidesApp.create(QUERY_NAME);
// Populate the title slide.
var [title, subtitle] = deck.getSlides()[0].getPageElements();
title.asShape().getText().setText(QUERY_NAME);
subtitle.asShape().getText().setText('using Google Cloud Console and Google Workspace APIs:\n' +
'Google Apps Script, BigQuery, Sheets, Slides');
// Data range to copy is from cell A1 to B11
var START_CELL = 'A1'; // include header row
var END_CELL = 'B11';
// Add the table slide and insert an empty table on it with
// the dimensions of the data range; fails if the sheet is empty.
var tableSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
var sheetValues = spreadsheet.getSheets()[0].getRange(
START_CELL + ':' + END_CELL).getValues();
var table = tableSlide.insertTable(sheetValues.length, sheetValues[0].length);
// Populate the table with spreadsheet data.
for (var i = 0; i < sheetValues.length; i++) {
for (var j = 0; j < sheetValues[0].length; j++) {
table.getCell(i, j).getText().setText(String(sheetValues[i][j]));
}
}
// Add a chart slide and insert the chart on it.
var chartSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
chartSlide.insertSheetsChart(chart);
// Return the presentation object for later use.
return deck;
}
/**
* Runs a BigQuery query, adds data and a chart to a spreadsheet,
* and adds the data and chart to a new slide presentation.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
var chart = createColumnChart(spreadsheet);
var deck = createSlidePresentation(spreadsheet, chart);
Logger.log('Results slide deck created: %s', deck.getUrl());
}
कोड का यह सैंपल, GitHub के रेपो में final
फ़ोल्डर में भी मिल सकता है.
8. अन्य संसाधन
यहां कुछ और संसाधन दिए गए हैं. इनकी मदद से, कोडलैब के इस मॉड्यूल में इस्तेमाल किए गए कॉन्टेंट को अच्छी तरह से समझा जा सकता है. साथ ही, Google डेवलपर टूल को प्रोग्राम के हिसाब से ऐक्सेस करने के अन्य तरीकों के बारे में भी जाना जा सकता है.
इस आवेदन के लिए संसाधन
दस्तावेज़
- Google Apps Script के दस्तावेज़ की साइट
- Apps Script: स्प्रेडशीट सेवा
- Apps Script: Slides सेवा
- Apps Script: BigQuery की बेहतर सेवा
वीडियो
- Google Apps Script का अन्य सीक्रेट
- किसी स्प्रेडशीट से Google Maps ऐक्सेस करना
- पूरी तरह से बिना स्क्रिप्ट वाला
- Google Workspace डेवलपर शो
समाचार और अपडेट
- Google Cloud Platform ब्लॉग
- Google Cloud Data Analytics ब्लॉग
- Google Developers ब्लॉग
- Twitter: Google Developers (@googledevs)
- Google Workspace Developers ब्लॉग
- Twitter: Google Workspace Developers (@workspacedevs)
अन्य कोडलैब
आसान लेवल
- [Google Sheets] Google Sheets के साथ Apps Script की बुनियादी बातें
- [REST API] Google Workspace और Google Workspace का इस्तेमाल करें फ़ाइलें और ऐक्सेस करने के लिए Google API Google Drive में मौजूद फ़ोल्डर
इंटरमीडिएट लेवल
- [Apps Script] CLASP Apps Script कमांड-लाइन टूल
- [Apps Script] Gmail के लिए Google Workspace ऐड-ऑन
- [ऐप्लिकेशन स्क्रिप्ट] Hangouts Chat के लिए पसंद के मुताबिक बॉट
- [REST API] अपने ऐप्लिकेशन के रिपोर्टिंग टूल के तौर पर Google Sheets का इस्तेमाल करें
- [REST API] BigQuery API का इस्तेमाल करके, Google Slides प्रज़ेंटेशन बनाएं
9. अगला चरण: कोड से जुड़ी चुनौतियां
इस कोडलैब में बनाए गए सैंपल को बेहतर या बेहतर बनाने के अलग-अलग तरीके यहां दिए गए हैं. यह पूरी सूची नहीं है, लेकिन इसमें कुछ ऐसे आइडिया दिए गए हैं जिनसे आपको अगला कदम उठाने के लिए प्रेरणा मिलेगी.
- ऐप्लिकेशन—क्या आपको JavaScript का इस्तेमाल करने या Apps Script की ओर से लगाई गई पाबंदियों तक सीमित नहीं रहना है? इस ऐप्लिकेशन को अपनी पसंदीदा प्रोग्रामिंग भाषा में पोर्ट करें. इसमें Google BigQuery, Sheets, और Slides के लिए REST API का इस्तेमाल किया जाता है.
- BigQuery—अपनी पसंद के शेक्सपियर डेटासेट के लिए कोई दूसरी क्वेरी आज़माएं. ओरिजनल Apps Script BigQuery सैंपल ऐप्लिकेशन में, एक और सैंपल क्वेरी मिल सकती है.
- BigQuery—BigQuery के कुछ अन्य सार्वजनिक डेटासेट के साथ प्रयोग करके, अपने लिए ज़्यादा काम का डेटासेट खोजें.
- BigQuery—पहले, हमने कुछ ऐसी क्वेरी के बारे में बताया था जिन्हें शेक्सपियर की किताबों या सार्वजनिक डेटा टेबल की मदद से बनाया जा सकता है. इन्हें इस वेब पेज और GitHub के इस रेपो पर देखा जा सकता है.
- शीट—चार्ट गैलरी में अन्य तरह के चार्ट के साथ प्रयोग करें.
- शीट और BigQuery—अपने बड़े स्प्रेडशीट डेटासेट का इस्तेमाल करें. BigQuery टीम ने 2016 में, एक सुविधा शुरू की थी. इसकी मदद से, डेवलपर डेटा सोर्स के तौर पर Sheets का इस्तेमाल कर सकते हैं. ज़्यादा जानकारी के लिए, Google BigQuery, Google Drive के साथ इंटिग्रेट होता है पर जाएं.
- स्लाइड—जनरेट किए गए प्रज़ेंटेशन में अन्य स्लाइड जोड़ें. जैसे, बिग डेटा के विश्लेषण से जुड़ी इमेज या अन्य ऐसेट. यहां Slides में पहले से मौजूद सेवा के लिए रेफ़रंस दस्तावेज़ दिया गया है.
- Google Workspace—Apps Script से Google Workspace या Google में पहले से मौजूद अन्य सेवाओं का इस्तेमाल करें. उदाहरण के लिए, Gmail, Calendar, Docs, Drive, Maps, Analytics, YouTube वगैरह. साथ ही, अन्य बेहतर सेवाएं. ज़्यादा जानकारी के लिए, पहले से मौजूद और बेहतर, दोनों तरह की सेवाओं की पहचान फ़ाइल के बारे में खास जानकारी पर जाएं.