Google Sheets API की मदद से, अपनी ज़रूरत के हिसाब से स्प्रेडशीट में चार्ट बनाए और अपडेट किए जा सकते हैं. इस पेज पर दिए गए उदाहरण बताते हैं कि Sheets API की मदद से, चार्ट से जुड़ी कुछ सामान्य कार्रवाइयां कैसे की जा सकती हैं.
ये उदाहरण भाषा न्यूट्रल होने के लिए एचटीटीपी अनुरोधों के तौर पर दिखाए गए हैं. Google API क्लाइंट लाइब्रेरी का इस्तेमाल करके, बैच अपडेट को अलग-अलग भाषाओं में लागू करने का तरीका जानने के लिए, स्प्रेडशीट अपडेट करें देखें.
इन उदाहरणों में, SPREADSHEET_ID और SHEET_ID प्लेसहोल्डर से पता चलता है कि आपको ऐसे आईडी कहां देने हैं. स्प्रेडशीट के यूआरएल में, स्प्रेडशीट आईडी देखा जा सकता है. spreadsheets.get
तरीके का इस्तेमाल करके, शीट आईडी पाया जा सकता है. रेंज की जानकारी, A1 नोटेशन का इस्तेमाल करके दी जाती है. उदाहरण के लिए,
Sheets1!A1:D5 रेंज का एक उदाहरण है.
इसके अलावा, प्लेसहोल्डर CHART_ID किसी दिए गए चार्ट का आईडी दिखाता है. Sheets API की मदद से चार्ट बनाते समय, यह आईडी सेट किया जा सकता है. इसके अलावा, Sheets API को अपने लिए आईडी जनरेट करने की अनुमति भी दी जा सकती है. spreadsheets.get
तरीके का इस्तेमाल करके, मौजूदा चार्ट के आईडी हासिल किए जा सकते हैं.
आखिर में, प्लेसहोल्डर SOURCE_SHEET_ID आपकी शीट को सोर्स डेटा के साथ दिखाता है. इन उदाहरणों में, यह चार्ट के सोर्स डेटा में दी गई टेबल है.
चार्ट का सोर्स डेटा
इन उदाहरणों के लिए, मान लें कि इस्तेमाल की जा रही स्प्रेडशीट की पहली शीट ("Sheet1") में यह सोर्स डेटा है. पहली पंक्ति की स्ट्रिंग हर कॉलम के लिए लेबल होती है. अपनी स्प्रेडशीट में दूसरी शीट से पढ़ने के तरीके के उदाहरण देखने के लिए, A1 नोटेशन देखें.
जवाब | B | C | D | E | |
1 | मॉडल नंबर | बिक्री - जनवरी | बिक्री - फ़रवरी | बिक्री - मार्च | कुल बिक्री |
2 | D-01X | 68 | 74 | 60 | 202 |
3 | फ़्रेंच-0B1 | 97 | 76 | 88 | 261 |
4 | P-034 | 27 | 49 | 32 | 108 |
5 | P-105 | 46 | 44 | 67 | 157 |
6 | W-11 | 75 | 68 | 87 | 230 |
7 | W-24 | 74 | 52 | 62 | 188 |
कॉलम चार्ट जोड़ें
नीचे दिए गए
spreadsheets.batchUpdate
कोड सैंपल में, सोर्स डेटा से कॉलम चार्ट को नई शीट में रखकर उसे बनाने के लिए, AddChartRequest
का इस्तेमाल करने का तरीका बताया गया है. चार्ट को कॉन्फ़िगर करने के लिए, ये काम किए जाते हैं:
- चार्ट टाइप को कॉलम चार्ट के तौर पर सेट करता है.
- चार्ट के नीचे लेजेंड जोड़ता है.
- चार्ट और ऐक्सिस के टाइटल सेट करता है.
- यह तीन डेटा सीरीज़ कॉन्फ़िगर करता है. इसमें डिफ़ॉल्ट फ़ॉर्मैटिंग और कलर का इस्तेमाल करते हुए, तीन अलग-अलग महीनों की बिक्री को दिखाया जाता है.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "title": "Model Q1 Sales", "basicChart": { "chartType": "COLUMN", "legendPosition": "BOTTOM_LEGEND", "axis": [ { "position": "BOTTOM_AXIS", "title": "Model Numbers" }, { "position": "LEFT_AXIS", "title": "Sales" } ], "domains": [ { "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1 } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 1, "endColumnIndex": 2 } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 2, "endColumnIndex": 3 } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 3, "endColumnIndex": 4 } ] } }, "targetAxis": "LEFT_AXIS" } ], "headerCount": 1 } }, "position": { "newSheet": true } } } } ] }
अनुरोध, नई शीट में इस तरह से एक चार्ट बनाता है:
पाई चार्ट जोड़ें
नीचे दिए गए
spreadsheets.batchUpdate
कोड सैंपल में, सोर्स डेटा से 3D पाई चार्ट बनाने के लिए
AddChartRequest
का इस्तेमाल करने का तरीका बताया गया है. चार्ट को कॉन्फ़िगर करने के लिए, अनुरोध ये काम करता है:
- चार्ट का टाइटल सेट करता है.
- चार्ट की दाईं ओर लेजेंड जोड़ता है.
- चार्ट को 3D पाई चार्ट के रूप में सेट करता है. ध्यान दें कि 3D पाई चार्ट के बीच में फ़्लैट पाई चार्ट के बीच की तरह "डोनट होल" नहीं हो सकता.
- इससे चार्ट डेटा सीरीज़ को, हर मॉडल नंबर की कुल बिक्री के तौर पर सेट किया जाता है.
- SHEET_ID की ओर से तय की गई शीट की सेल C3 पर चार्ट को X और Y, दोनों दिशाओं में 50 पिक्सल ऑफ़सेट के साथ ऐंकर करता है.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "title": "Model Q1 Total Sales", "pieChart": { "legendPosition": "RIGHT_LEGEND", "threeDimensional": true, "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1 } ] } }, "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 4, "endColumnIndex": 5 } ] } }, } }, "position": { "overlayPosition": { "anchorCell": { "sheetId": SHEET_ID, "rowIndex": 2, "columnIndex": 2 }, "offsetXPixels": 50, "offsetYPixels": 50 } } } } } ] }
अनुरोध इस तरह का चार्ट बनाता है:
इसके अलावा, आपके पास अनुरोध में लेजेंड पोज़िशन की वैल्यू को RIGHT_LEGEND से LABELED_LEGEND तक अपडेट करने का भी विकल्प है, ताकि लेजेंड की वैल्यू पाई चार्ट स्लाइस से कनेक्ट की जा सकें.
'legendPosition': 'LABELED_LEGEND',
अपडेट किया गया अनुरोध, इस तरह का चार्ट बनाता है:
आस-पास नहीं दिख रही कई रेंज का इस्तेमाल करके लाइन चार्ट जोड़ना
नीचे दिए गए
spreadsheets.batchUpdate
कोड सैंपल में, सोर्स डेटा से लाइन चार्ट बनाने और उसे सोर्स शीट में रखने के लिए, AddChartRequest
का इस्तेमाल करने का तरीका बताया गया है.
ChartSourceRange
से मेल न खाने वाली रेंज को चुनकर, पंक्तियों को बाहर रखा जा सकता है.
चार्ट को कॉन्फ़िगर करने के लिए, यह अनुरोध किया जाता है:
- चार्ट टाइप को लाइन चार्ट के तौर पर सेट करता है.
- हॉरिज़ॉन्टल x-ऐक्सिस का टाइटल सेट करता है.
- बिक्री दिखाने वाली डेटा सीरीज़ कॉन्फ़िगर करती है. यह डिफ़ॉल्ट फ़ॉर्मैटिंग और कलर का इस्तेमाल करते हुए, A1:A3 और A6:A7 को
domain
और B1:B3 और B6:B7 कोseries
के तौर पर सेट करता है. रेंज को अनुरोध के यूआरएल में A1 नोटेशन का इस्तेमाल करके तय किया जाता है. - चार्ट को SHEET_ID की ओर से तय की गई शीट की सेल H8 पर ऐंकर करता है.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "basicChart": { "chartType": "LINE", "domains": [ { "domain": { "sourceRange": { "sources": [ { "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 0, "endColumnIndex": 1, "sheetId": SOURCE_SHEET_ID }, { "startRowIndex": 5, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1, "sheetId": SOURCE_SHEET_ID } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 1, "endColumnIndex": 2, "sheetId": SOURCE_SHEET_ID }, { "startRowIndex": 5, "endRowIndex": 7, "startColumnIndex": 1, "endColumnIndex": 2, "sheetId": SOURCE_SHEET_ID } ] } } } ] } }, "position": { "overlayPosition": { "anchorCell": { "sheetId": SOURCE_SHEET_ID, "rowIndex": 8, "columnIndex": 8 } } } } } } ] }
अनुरोध, नई शीट में इस तरह से एक चार्ट बनाता है:
चार्ट मिटाना
नीचे दिए गए
spreadsheets.batchUpdate
कोड सैंपल में, CHART_ID के बताए गए चार्ट को मिटाने के लिए, DeleteEmbeddedObjectRequest
का इस्तेमाल करने का तरीका बताया गया है.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
चार्ट की प्रॉपर्टी में बदलाव करना
यहां दिए गए
spreadsheets.batchUpdate
कोड सैंपल में बताया गया है कि कॉलम चार्ट जोड़ें की रेसिपी में बनाए गए चार्ट में बदलाव करने के लिए, UpdateChartSpecRequest
का इस्तेमाल कैसे करें. साथ ही, इसे डेटा, टाइप, और दिखने के तरीके में बदलाव करने का तरीका भी बताया गया है. चार्ट प्रॉपर्टी के सबसेट को अलग-अलग
बदला नहीं जा सकता. बदलाव करने के लिए, आपको UpdateChartSpecRequest
के साथ पूरा spec
फ़ील्ड भरना होगा. चार्ट में बदलाव करने के लिए ज़रूरी है कि आप इसकी जगह कोई नया स्पेसिफ़िकेशन जोड़ें.
नीचे दिया गया अनुरोध, ओरिजनल चार्ट को अपडेट करता है (CHART_ID ने तय किया है):
- चार्ट टाइप को
BAR
पर सेट करता है. - लेजेंड को चार्ट की दाईं ओर ले जाता है.
- ऐक्सिस को उलटता है, ताकि "बिक्री" सबसे नीचे ऐक्सिस पर और "मॉडल नंबर" बाएं ऐक्सिस पर हो.
- ऐक्सिस के टाइटल के फ़ॉर्मैट को 24 पॉइंट वाले फ़ॉन्ट, बोल्ड, और इटैलिक में सेट करता है.
- चार्ट से "W-24" डेटा हटाता है (चार्ट सोर्स डेटा की पंक्ति 7).
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateChartSpec": { "chartId": CHART_ID, "spec": { "title": "Model Q1 Sales", "basicChart": { "chartType": "BAR", "legendPosition": "RIGHT_LEGEND", "axis": [ { "format": { "bold": true, "italic": true, "fontSize": 24 }, "position": "BOTTOM_AXIS", "title": "Sales" }, { "format": { "bold": true, "italic": true, "fontSize": 24 }, "position": "LEFT_AXIS", "title": "Model Numbers" } ], "domains": [ { "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 0, "endColumnIndex": 1 } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 1, "endColumnIndex": 2 } ] } }, "targetAxis": "BOTTOM_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 2, "endColumnIndex": 3 } ] } }, "targetAxis": "BOTTOM_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 3, "endColumnIndex": 4 } ] } }, "targetAxis": "BOTTOM_AXIS" } ], "headerCount": 1 } } } } ] }
अनुरोध करने के बाद, चार्ट इस तरह से दिखता है:
चार्ट को एक जगह से दूसरी जगह ले जाना या उसका साइज़ बदलना
नीचे दिए गए
spreadsheets.batchUpdate
कोड सैंपल में, चार्ट को एक जगह से दूसरी जगह ले जाने और उसका साइज़ बदलने के लिए, UpdateEmbeddedObjectPositionRequest
का इस्तेमाल करने का तरीका बताया गया है. अनुरोध के बाद, CHART_ID के ज़रिए तय किया गया चार्ट यह है:
- इसकी मूल शीट के सेल A5 पर ऐंकर किया गया है.
- X दिशा में 100 पिक्सल का ऑफ़सेट.
- साइज़ बदलकर, 1200 x 742 पिक्सल किया गया. चार्ट का डिफ़ॉल्ट साइज़ 600 x 371 पिक्सल है.
अनुरोध सिर्फ़ उन प्रॉपर्टी में बदलाव करता है जिन्हें fields
पैरामीटर के साथ तय किया गया है.
अन्य प्रॉपर्टी (जैसे कि offsetYPixels
) अपनी मूल वैल्यू बनाए रखती हैं.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateEmbeddedObjectPosition": { "objectId": CHART_ID, "newPosition": { "overlayPosition": { "anchorCell": { "rowIndex": 4, "columnIndex": 0 }, "offsetXPixels": 100, "widthPixels": 1200, "heightPixels": 742 } }, "fields": "anchorCell(rowIndex,columnIndex),offsetXPixels,widthPixels,heightPixels" } } ] }
चार्ट का डेटा देखें
नीचे दिए गए spreadsheets.get
कोड सैंपल में, स्प्रेडशीट से चार्ट का डेटा पाने का तरीका बताया गया है. fields
क्वेरी पैरामीटर से पता चलता है कि सिर्फ़ चार्ट का डेटा दिखाया जाना चाहिए.
इस तरीके से मिले कॉल का रिस्पॉन्स, एक spreadsheet
ऑब्जेक्ट है, जिसमें sheet
ऑब्जेक्ट का कलेक्शन होता है. शीट पर मौजूद सभी चार्ट, sheet
ऑब्जेक्ट में दिखाए जाते हैं. अगर रिस्पॉन्स फ़ील्ड की डिफ़ॉल्ट वैल्यू पर सेट किया गया है, तो उसे रिस्पॉन्स में शामिल नहीं किया जाता.
इस उदाहरण में, पहली शीट (SOURCE_SHEET_ID) में कोई चार्ट नहीं है. इसलिए, कर्ली ब्रैकेट का एक खाली जोड़ा दिखाता है. दूसरी शीट में वह चार्ट होता है जिसे कॉलम चार्ट जोड़ें से बनाया गया होता है.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(charts)
{ "sheets": [ {}, { "charts": [ { "chartId": CHART_ID, "position": { "sheetId": SHEET_ID }, "spec": { "basicChart": { "axis": [ { "format": { "bold": false, "italic": false }, "position": "BOTTOM_AXIS", "title": "Model Numbers" }, { "format": { "bold": false, "italic": false }, "position": "LEFT_AXIS", "title": "Sales" } ], "chartType": "COLUMN", "domains": [ { "domain": { "sourceRange": { "sources": [ { "endColumnIndex": 1 "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 0, "startRowIndex": 0, } ] } } } ], "legendPosition": "BOTTOM_LEGEND", "series": [ { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 2, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 1, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 3, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 2, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 4, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 3, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" } ] }, "hiddenDimensionStrategy": "SKIP_HIDDEN_ROWS_AND_COLUMNS", "title": "Model Q1 Sales", }, } ] } ] }