Google Sheets API से, स्प्रेडशीट में पिवट टेबल बनाई और अपडेट की जा सकती हैं. इस पेज पर दिए गए उदाहरणों में बताया गया है कि Sheets API की मदद से, कुछ सामान्य पिवट टेबल ऑपरेशन कैसे हासिल किए जा सकते हैं.
ये उदाहरण, न्यूट्रल भाषा में एचटीटीपी अनुरोधों के रूप में दिखाए जाते हैं. Google API क्लाइंट लाइब्रेरी का इस्तेमाल करके, बैच अपडेट को अलग-अलग भाषाओं में लागू करने का तरीका जानने के लिए, स्प्रेडशीट अपडेट करें देखें.
इन उदाहरणों में, SPREADSHEET_ID
और SHEET_ID
प्लेसहोल्डर से पता चलता है कि आपको आईडी कहां देने हैं. स्प्रेडशीट आईडी को स्प्रेडशीट के यूआरएल में देखा जा सकता है. spreadsheets.get
तरीके का इस्तेमाल करके, शीट का आईडी पाया जा सकता है. रेंज को A1 नोटेशन का इस्तेमाल करके बताया जाता है. उदाहरण के लिए, Sheet1!A1:D5 रेंज है.
इसके अलावा, प्लेसहोल्डर SOURCE_SHEET_ID
आपकी शीट को सोर्स डेटा के साथ दिखाता है. इन उदाहरणों में, यह टेबल पिवट टेबल सोर्स डेटा में दी गई है.
पिवट टेबल का सोर्स डेटा
इन उदाहरणों के लिए, मान लें कि इस्तेमाल की जा रही स्प्रेडशीट की पहली शीट ("Sheet1") में यह सोर्स "sales" डेटा है. पहली पंक्ति में दिए गए स्ट्रिंग, अलग-अलग कॉलम के लेबल होते हैं. अपनी स्प्रेडशीट में अन्य शीट से पढ़ने के तरीके के उदाहरण देखने के लिए, A1 नोटेशन देखें.
जवाब | B | C | D | E | F | G | |
1 | आइटम की कैटगरी | मॉडल नंबर | कीमत | संख्या | इलाका | सेल्सपर्सन | शिपिंग की तारीख |
2 | व्हील | W-24 | 20.50 डॉलर | 4 | पश्चिम | बेथ | 1/3/2016 |
3 | दरवाज़ा | D-01X | 15.00 डॉलर | 2 | दक्षिण | आमिर | 15/3/2016 |
4 | इंजन | ENG-0134 | INR4500.00 | 1 | उत्तरी | कारमेन | 20/3/2016 |
5 | Frame | FR-0B1 | 34.00 डॉलर | 8 | पूर्व | हैना | 12/3/2016 |
6 | पैनल | P-034 | INR270 | 4 | उत्तरी | डेविन | 2/4/2016 |
7 | पैनल | P-052 | 11.50 डॉलर | 7 | पूर्व | एरिक | 16/5/2016 |
8 | व्हील | W-24 | 20.50 डॉलर | 11 | दक्षिण | Sheldon | 30/4/2016 |
9 | इंजन | ENG-0161 | 330.00 डॉलर | 2 | उत्तरी | जेसी | 2/7/2016 |
10 | दरवाज़ा | D-01Y | 29.00 डॉलर | 6 | पश्चिम | अरमांडो | 13/3/2016 |
11 | Frame | FR-0B1 | 34.00 डॉलर | 9 | दक्षिण | युलियाना | 27/2/2016 |
12 | पैनल | P-102 | 3.00 डॉलर | 15 | पश्चिम | कारमेन | 18/4/2016 |
13 | पैनल | P-105 | 8.25 डॉलर | 13 | पश्चिम | जेसी | 20/6/2016 |
14 | इंजन | ENG-0211 | 283.00 डॉलर | 1 | उत्तरी | आमिर | 21/6/2016 |
15 | दरवाज़ा | D-01X | 15.00 डॉलर | 2 | पश्चिम | अरमांडो | 3/7/2016 |
16 | Frame | FR-0B1 | 34.00 डॉलर | 6 | दक्षिण | कारमेन | 15/7/2016 |
17 | व्हील | W-25 | 20.00 डॉलर | 8 | दक्षिण | हैना | 2/5/2016 |
18 | व्हील | W-11 | 29.00 डॉलर | 13 | पूर्व | एरिक | 19/5/2016 |
19 | दरवाज़ा | D-05 | 17.70 डॉलर | 7 | पश्चिम | बेथ | 28/6/2016 |
20 | Frame | FR-0B1 | 34.00 डॉलर | 8 | उत्तरी | Sheldon | 30/3/2016 |
पिवट टेबल जोड़ना
यहां दिया गया
spreadsheets.batchUpdate
कोड सैंपल दिखाता है कि
UpdateCellsRequest
सोर्स डेटा से पिवट टेबल बनाने के लिए कैसे UpdateCellsRequest
का इस्तेमाल किया जाता है. साथ ही, इसे SHEET_ID
के तय किए गए शीट की शीट के A50 सेल में ऐंकर किया जाता है.
अनुरोध पिवट टेबल को इन प्रॉपर्टी के साथ कॉन्फ़िगर करता है:
- एक वैल्यू ग्रुप (संख्या) जो बिक्री की संख्या दिखाता है. वैल्यू का सिर्फ़ एक ग्रुप होता है, इसलिए दो संभावित
valueLayout
सेटिंग एक जैसी होती हैं. - दो लाइन ग्रुप (आइटम की कैटगरी और मॉडल नंबर). पहला क्रम, "वेस्ट" क्षेत्र से कुल संख्या की
बढ़ती हुई वैल्यू के तौर पर क्रम से लगाया जाता है. इसलिए,
"इंजन" (पश्चिमी बिक्री के बिना) "दरवाज़े" (15 पश्चिम बिक्री के साथ) के ऊपर दिखाई देता है. मॉडल नंबर ग्रुप सभी क्षेत्रों में होने वाली कुल बिक्री को घटते हुए क्रम में क्रम से लगाता है.
इसलिए, "W-24" (15 बिक्री) "W-25" (8 बिक्री) के ऊपर दिखता है. ऐसा करने के लिए,
valueBucket
फ़ील्ड को{}
पर सेट करें. - एक कॉलम ग्रुप (क्षेत्र) जो ज़्यादातर बिक्री के बढ़ते क्रम में दिखता है.
फिर से,
valueBucket
को{}
पर सेट किया गया. "उत्तर" में सबसे कम बिक्री होती है और इसलिए, यह पहले क्षेत्र कॉलम के तौर पर दिखता है.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "updateCells": { "rows": [ { "values": [ { "pivotTable": { "source": { "sheetId":SOURCE_SHEET_ID
, "startRowIndex": 0, "startColumnIndex": 0, "endRowIndex": 20, "endColumnIndex": 7 }, "rows": [ { "sourceColumnOffset": 0, "showTotals": true, "sortOrder": "ASCENDING", "valueBucket": { "buckets": [ { "stringValue": "West" } ] } }, { "sourceColumnOffset": 1, "showTotals": true, "sortOrder": "DESCENDING", "valueBucket": {} } ], "columns": [ { "sourceColumnOffset": 4, "sortOrder": "ASCENDING", "showTotals": true, "valueBucket": {} } ], "values": [ { "summarizeFunction": "SUM", "sourceColumnOffset": 3 } ], "valueLayout": "HORIZONTAL" } } ] } ], "start": { "sheetId":SHEET_ID
, "rowIndex": 49, "columnIndex": 0 }, "fields": "pivotTable" } } ] }
अनुरोध इस तरह की पिवट टेबल बनाता है:
कैलकुलेट की गई वैल्यू के साथ पिवट टेबल जोड़ना
यहां दिया गया
spreadsheets.batchUpdate
कोड सैंपल बताता है कि
UpdateCellsRequest
सोर्स डेटा से कैलकुलेशन वैल्यू ग्रुप वाली पिवट टेबल कैसे बनाई जाए.
साथ ही, इसे SHEET_ID
के तय किए गए शीट के A50 सेल में ऐंकर किया जाता है.
अनुरोध पिवट टेबल को इन प्रॉपर्टी के साथ कॉन्फ़िगर करता है:
- दो वैल्यू ग्रुप (संख्या और कुल कीमत). पहला पता, बिक्री
की संख्या बताता है. दूसरा, किसी पार्ट की लागत के गुणनफल और उसकी बिक्री की कुल संख्या के आधार पर, कैलकुलेट की गई वैल्यू है. ऐसा करने के लिए, इस फ़ॉर्मूला का इस्तेमाल करें:
=Cost*SUM(Quantity)
. - तीन लाइन ग्रुप (आइटम की कैटगरी, मॉडल नंबर, और कीमत).
- एक कॉलम ग्रुप (क्षेत्र).
- हर ग्रुप में, लाइन और कॉलम ग्रुप को संख्या के बजाय नाम के हिसाब से क्रम में लगाया जाता है.
इन ग्रुप की मदद से, टेबल को वर्णमाला के क्रम में लगाया जाता है. ऐसा करने के लिए,
valueBucket
फ़ील्ड कोPivotGroup
से हटा दिया जाता है. - टेबल के दिखने के तरीके को आसान बनाने के लिए, अनुरोध में मुख्य पंक्ति और कॉलम ग्रुप को छोड़कर सभी के लिए सबटोटल छिपा दिए जाते हैं.
- टेबल में प्रॉडक्ट दिखने के तरीके को बेहतर बनाने के लिए, अनुरोध
valueLayout
कोVERTICAL
पर सेट कर देता है.valueLayout
सिर्फ़ तब ज़रूरी है, जब वैल्यू ग्रुप दो या उससे ज़्यादा हों.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "updateCells": { "rows": [ { "values": [ { "pivotTable": { "source": { "sheetId":SOURCE_SHEET_ID
, "startRowIndex": 0, "startColumnIndex": 0, "endRowIndex": 20, "endColumnIndex": 7 }, "rows": [ { "sourceColumnOffset": 0, "showTotals": true, "sortOrder": "ASCENDING" }, { "sourceColumnOffset": 1, "showTotals": false, "sortOrder": "ASCENDING", }, { "sourceColumnOffset": 2, "showTotals": false, "sortOrder": "ASCENDING", } ], "columns": [ { "sourceColumnOffset": 4, "sortOrder": "ASCENDING", "showTotals": true } ], "values": [ { "summarizeFunction": "SUM", "sourceColumnOffset": 3 }, { "summarizeFunction": "CUSTOM", "name": "Total Price", "formula": "=Cost*SUM(Quantity)" } ], "valueLayout": "VERTICAL" } } ] } ], "start": { "sheetId":SHEET_ID
, "rowIndex": 49, "columnIndex": 0 }, "fields": "pivotTable" } } ] }
अनुरोध इस तरह की पिवट टेबल बनाता है:
पिवट टेबल मिटाना
यहां spreadsheets.batchUpdate
कोड सैंपल दिया गया है कि
UpdateCellsRequest
किसी ऐसी पिवट टेबल (अगर मौजूद है) को मिटाने के लिए कैसे इस्तेमाल किया जाता है
जिसे शीट के सेल A50 पर ऐंकर किया गया है और जो SHEET_ID
से तय होती है.
UpdateCellsRequest
, fields
पैरामीटर में "pivotTable" को शामिल करके पिवट टेबल को हटा सकता है और ऐंकर सेल पर pivotTable
फ़ील्ड को हटाकर भी पिवट टेबल हटा सकता है.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"updateCells": {
"rows": [
{
"values": [
{}
]
}
],
"start": {
"sheetId": SHEET_ID
,
"rowIndex": 49,
"columnIndex": 0
},
"fields": "pivotTable"
}
}
]
}
पिवट टेबल के कॉलम और पंक्तियों में बदलाव करना
यहां दिया गया
spreadsheets.batchUpdate
कोड सैंपल में बताया गया है कि
UpdateCellsRequest
पिवट टेबल जोड़ें में बनाई गई पिवट टेबल में बदलाव करने के लिए, उसे कैसे इस्तेमाल किया जाता है.
CellData
संसाधन में pivotTable
फ़ील्ड के सबसेट को fields
पैरामीटर के साथ अलग-अलग नहीं बदला जा सकता. बदलाव करने के लिए, पूरा pivotTable
फ़ील्ड देना ज़रूरी है. पिवट टेबल में बदलाव करने के लिए, उसे नई टेबल से बदलना ज़रूरी है.
अनुरोध करने पर, मूल पिवट टेबल में ये बदलाव किए जाते हैं:
- मूल पिवट टेबल (मॉडल नंबर) से दूसरे पंक्ति ग्रुप को हटाता है.
- कॉलम ग्रुप (सेलर) जोड़ता है. कॉलम, पैनल में हुई बिक्री की कुल संख्या के हिसाब से घटते क्रम में लगाए जाते हैं. "Carmen" (15 पैनल सेल्स), "जेसी" (13 पैनल सेल्स) की बाईं ओर दिखता है.
- "पश्चिम" को छोड़कर, हर क्षेत्र के लिए कॉलम को छोटा करता है. ऐसा करने से, उस क्षेत्र के
सेलर ग्रुप को छिप जाता है. ऐसा करने के लिए, क्षेत्र कॉलम ग्रुप के उस कॉलम के लिए
valueMetadata
मेंcollapsed
कोtrue
पर सेट करें.
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "updateCells": { "rows": [ { "values": [ { "pivotTable": { "source": { "sheetId":SOURCE_SHEET_ID
, "startRowIndex": 0, "startColumnIndex": 0, "endRowIndex": 20, "endColumnIndex": 7 }, "rows": [ { "sourceColumnOffset": 0, "showTotals": true, "sortOrder": "ASCENDING", "valueBucket": { "buckets": [ { "stringValue": "West" } ] } } ], "columns": [ { "sourceColumnOffset": 4, "sortOrder": "ASCENDING", "showTotals": true, "valueBucket": {}, "valueMetadata": [ { "value": { "stringValue": "North" }, "collapsed": true }, { "value": { "stringValue": "South" }, "collapsed": true }, { "value": { "stringValue": "East" }, "collapsed": true } ] }, { "sourceColumnOffset": 5, "sortOrder": "DESCENDING", "showTotals": false, "valueBucket": { "buckets": [ { "stringValue": "Panel" } ] }, } ], "values": [ { "summarizeFunction": "SUM", "sourceColumnOffset": 3 } ], "valueLayout": "HORIZONTAL" } } ] } ], "start": { "sheetId":SHEET_ID
, "rowIndex": 49, "columnIndex": 0 }, "fields": "pivotTable" } } ] }
अनुरोध इस तरह की पिवट टेबल बनाता है:
पिवट टेबल का डेटा पढ़ें
नीचे दिया गया
spreadsheets.get
कोड सैंपल बताता है कि स्प्रेडशीट से पिवट टेबल का डेटा कैसे पाया जा सकता है. fields
क्वेरी पैरामीटर से यह तय होता है कि सिर्फ़ पिवट टेबल का डेटा दिखाया जाना चाहिए (सेल की वैल्यू वाले डेटा के उलट).
अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
?fields=sheets(properties.sheetId,data.rowData.values.pivotTable)
इस रिस्पॉन्स में एक
Spreadsheet
संसाधन होता है, जिसमें
SheetProperties
एलिमेंट वाला एक Sheet
ऑब्जेक्ट होता है. GridData
एलिमेंट की एक कैटगरी भी होती है, जिसमें PivotTable
के बारे में जानकारी होती है.
पिवट टेबल की जानकारी, शीट के CellData
रिसॉर्स में उस सेल के लिए होती है जिस पर टेबल ऐंकर की गई है (यानी, टेबल का ऊपरी बाएं कोने में). अगर रिस्पॉन्स फ़ील्ड, डिफ़ॉल्ट वैल्यू पर सेट है, तो उसे रिस्पॉन्स से हटा दिया जाता है.
इस उदाहरण में, पहली शीट (SOURCE_SHEET_ID
) में रॉ टेबल का सोर्स डेटा है, जबकि दूसरी शीट (SHEET_ID
) में पिवट टेबल है, जो B3 पर ऐंकर की गई है. खाली कर्ली ब्रेसेस उन शीट या सेल को दिखाते हैं जिनमें पिवट टेबल डेटा नहीं होता. रेफ़रंस के लिए, यह अनुरोध शीट के आईडी भी दिखाता है.
{ "sheets": [ { "data": [{}], "properties": { "sheetId":SOURCE_SHEET_ID
} }, { "data": [ { "rowData": [ {}, {}, { "values": [ {}, { "pivotTable": { "columns": [ { "showTotals": true, "sortOrder": "ASCENDING", "sourceColumnOffset": 4, "valueBucket": {} } ], "rows": [ { "showTotals": true, "sortOrder": "ASCENDING", "valueBucket": { "buckets": [ { "stringValue": "West" } ] } }, { "showTotals": true, "sortOrder": "DESCENDING", "valueBucket": {}, "sourceColumnOffset": 1 } ], "source": { "sheetId":
SOURCE_SHEET_ID
, "startColumnIndex": 0, "endColumnIndex": 7, "startRowIndex": 0, "endRowIndex": 20 }, "values": [ { "sourceColumnOffset": 3, "summarizeFunction": "SUM" } ] } } ] } ] } ], "properties": { "sheetId":
SHEET_ID
} } ], }