डेवलपर मेटाडेटा सुविधा की मदद से, स्प्रेडशीट में मौजूद अलग-अलग इकाइयों और जगहों के साथ मेटाडेटा जोड़ा जा सकता है. इसके बाद, इस मेटाडेटा को क्वेरी किया जा सकता है. साथ ही, इसका इस्तेमाल उन ऑब्जेक्ट को ढूंढने के लिए किया जा सकता है जिनसे यह जुड़ा है.
मेटाडेटा को पंक्तियों, कॉलम, शीट या स्प्रेडशीट से जोड़ा जा सकता है.
डेवलपर मेटाडेटा की मदद से, ये कार्रवाइयां की जा सकती हैं:
स्प्रेडशीट में मौजूद अलग-अलग इकाइयों और जगहों के साथ कोई भी डेटा जोड़ें—उदाहरण के लिए,
totals
को कॉलम D के साथ याresponseId = 1234
को लाइन 7 के साथ जोड़ें.किसी खास मेटाडेटा कुंजी या एट्रिब्यूट से जुड़ी सभी जगहों और डेटा का पता लगाएं—उदाहरण के लिए, कॉलम D से जुड़ी
totals
कुंजी दी गई है याresponseId
दिया गया है, तोresponseId
मेटाडेटा और उससे जुड़ी मेटाडेटा वैल्यू वाली सभी लाइनें दिखाएं.किसी इकाई या जगह से जुड़ा सारा डेटा ढूंढना—उदाहरण के लिए, कॉलम D में दी गई जगह से जुड़ा सारा मेटाडेटा दिखाओ.
किसी जगह पर मौजूद वैल्यू को उससे जुड़े मेटाडेटा के हिसाब से वापस पाना—उदाहरण के लिए,
totals
को देखते हुए, उससे जुड़े कॉलम या लाइन में मौजूद वैल्यू का प्रतिनिधित्व वापस पाएं याsummary
को देखते हुए, उससे जुड़े शीट संसाधन का प्रतिनिधित्व वापस पाएं.उस जगह के मेटाडेटा की जानकारी देकर, किसी जगह की वैल्यू अपडेट करें—उदाहरण के लिए, A1 नोटेशन का इस्तेमाल करके, किसी लाइन में मौजूद वैल्यू अपडेट करने के बजाय, मेटाडेटा आईडी की जानकारी देकर वैल्यू अपडेट करें.
मेटाडेटा को पढ़ने और लिखने की अनुमति
spreadsheets.developerMetadata संसाधन, स्प्रेडशीट में किसी जगह या ऑब्जेक्ट से जुड़े डेवलपर मेटाडेटा का ऐक्सेस देता है.
डेवलपर मेटाडेटा के बारे में जानकारी
इस सेक्शन में, डेवलपर मेटाडेटा के कुछ मुख्य पहलुओं के बारे में बताया गया है. Sheets API का इस्तेमाल करते समय, आपको इन पहलुओं पर ध्यान देना चाहिए.
टैग के तौर पर मेटाडेटा
डेवलपर मेटाडेटा का एक इस्तेमाल टैग है. यह सिर्फ़ एक कुंजी और जगह का इस्तेमाल करके, स्प्रेडशीट में किसी जगह का नाम बताता है. उदाहरण के लिए, किसी शीट में मौजूद किसी खास लाइन के साथ headerRow
या किसी खास कॉलम के साथ totals
को जोड़ा जा सकता है. टैग का इस्तेमाल करके, स्प्रेडशीट के कुछ हिस्सों को तीसरे पक्ष के टूल या डेटाबेस में मौजूद फ़ील्ड से सिमैंटिक तौर पर बाइंड किया जा सकता है. इससे स्प्रेडशीट में किए गए बदलावों से, आपका ऐप्लिकेशन काम करना बंद नहीं करेगा.
मेटाडेटा को प्रॉपर्टी के तौर पर इस्तेमाल करना
कुंजी, जगह, और वैल्यू तय करके बनाया गया मेटाडेटा, शीट में उस जगह से जुड़े की-वैल्यू पेयर के तौर पर काम करता है. उदाहरण के लिए, इन्हें जोड़ा जा सकता है:
- लाइन के साथ
formResponseId = resp123
lastUpdated = 1477369882
कॉलम के साथ.
इसकी मदद से, स्प्रेडशीट में किसी खास इलाके या डेटा से जुड़ी कस्टम नाम वाली प्रॉपर्टी को सेव और ऐक्सेस किया जा सकता है.
प्रोजेक्ट और दस्तावेज़ के लिए दिखने वाला मेटाडेटा
किसी डेवलपर प्रोजेक्ट को दूसरे प्रोजेक्ट के मेटाडेटा में बदलाव करने से रोकने के लिए, मेटाडेटा की visibility
सेटिंग के दो विकल्प उपलब्ध हैं: project
और document
. Sheets API का इस्तेमाल करके, प्रोजेक्ट का मेटाडेटा सिर्फ़ उस डेवलपर प्रोजेक्ट से देखा और ऐक्सेस किया जा सकता है जिसने उसे बनाया है. दस्तावेज़ के मेटाडेटा को ऐसे किसी भी डेवलपर प्रोजेक्ट से ऐक्सेस किया जा सकता है जिसके पास दस्तावेज़ का ऐक्सेस हो.
ऐसी क्वेरी जिनमें साफ़ तौर पर यह नहीं बताया गया है कि डेवलपर मेटाडेटा को कौन देख सकता है. इनके लिए, अनुरोध करने वाले डेवलपर प्रोजेक्ट के लिए, क्वेरी से मेल खाने वाले दस्तावेज़ का मेटाडेटा और क्वेरी से मेल खाने वाले प्रोजेक्ट का मेटाडेटा दिखाया जाता है.
खासियत
मेटाडेटा कुंजियां अलग-अलग होना ज़रूरी नहीं है, लेकिन metadataId
अलग-अलग होना चाहिए. मेटाडेटा बनाते समय, अगर आईडी फ़ील्ड की वैल्यू नहीं दी जाती है, तो API अपने-आप एक आईडी असाइन कर देता है. इस आईडी का इस्तेमाल, मेटाडेटा की पहचान करने के लिए किया जा सकता है. वहीं, कुंजियों और अन्य एट्रिब्यूट का इस्तेमाल, मेटाडेटा के सेट की पहचान करने के लिए किया जा सकता है.
मेटाडेटा बनाना
मेटाडेटा बनाने के लिए, batchUpdate तरीके का इस्तेमाल करें. साथ ही, metadataKey
, location
, और visibility
के साथ createDeveloperMetadataRequest उपलब्ध कराएं. आपके पास metadataValue
या साफ़ तौर पर metadataId
तय करने का विकल्प होता है.
अगर आपने ऐसा आईडी डाला है जिसका इस्तेमाल पहले से किया जा रहा है, तो अनुरोध पूरा नहीं होगा. अगर आपने आईडी नहीं दिया है, तो एपीआई एक आईडी असाइन करता है.
इस उदाहरण में, हमने अनुरोध में एक कुंजी, वैल्यू, और लाइन दी है. जवाब में, डेवलपर मेटाडेटा की ये वैल्यू और असाइन किया गया मेटाडेटा आईडी दिखता है.
अनुरोध
{ "requests": [ { "createDeveloperMetadata": { "developerMetadata": { "location": { "dimensionRange": { "sheetId": sheetId, "dimension": "ROWS", "startIndex": 6, "endIndex": 7 } }, "visibility": "DOCUMENT", "metadataKey": "Sales", "metadataValue": "2022" } } } ] }
जवाब
{ "spreadsheetId": spreadsheetId, "replies": [ { "createDeveloperMetadata": { "developerMetadata": { "metadataId": metadataId, "metadataKey": "Sales", "metadataValue": "2022", "location": { "locationType": "ROW", "dimensionRange": { "sheetId": sheetId, "dimension": "ROWS", "startIndex": 6, "endIndex": 7 } }, "visibility": "DOCUMENT" } } } ] }
मेटाडेटा का कोई एक आइटम पढ़ना
किसी एक डेवलपर मेटाडेटा को वापस पाने के लिए, spreadsheets.developerMetadata.get तरीके का इस्तेमाल करें. इसमें मेटाडेटा वाला spreadsheetId
और डेवलपर मेटाडेटा का यूनीक metadataId
तय करें.
अनुरोध
इस उदाहरण में, हमने अनुरोध में स्प्रेडशीट आईडी और मेटाडेटा आईडी दिया है. जवाब में, मेटाडेटा आईडी के लिए डेवलपर मेटाडेटा की वैल्यू दिखती हैं.
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/developerMetadata/metadataId
जवाब
{ "metadataId": metadataId, "metadataKey": "Sales", "metadataValue": "2022", "location": { "locationType": "ROW", "dimensionRange": { "sheetId": sheetId, "dimension": "ROWS", "startIndex": 6, "endIndex": 7 } }, "visibility": "DOCUMENT" }
एक से ज़्यादा मेटाडेटा आइटम पढ़ने की अनुमति
डेवलपर मेटाडेटा के एक से ज़्यादा आइटम वापस पाने के लिए, spreadsheets.developerMetadata.search तरीके का इस्तेमाल करें. आपको एक ऐसा DataFilter
तय करना होगा जो प्रॉपर्टी के किसी भी कॉम्बिनेशन पर मौजूद मेटाडेटा से मेल खाता हो. जैसे, कुंजी, वैल्यू, जगह या दिखने की स्थिति.
इस उदाहरण में, हमने अनुरोध में कई मेटाडेटा आईडी दिए हैं. जवाब में, हर मेटाडेटा आईडी के लिए डेवलपर मेटाडेटा वैल्यू मिलती हैं.
अनुरोध
{ "dataFilters": [ { "developerMetadataLookup": { "metadataId": metadataId } }, { "developerMetadataLookup": { "metadataId": metadataId } } ] }
जवाब
{ "matchedDeveloperMetadata": [ { "developerMetadata": { "metadataId": metadataId, "metadataKey": "Revenue", "metadataValue": "2022", "location": { "locationType": "SHEET", "sheetId": sheetId }, "visibility": "DOCUMENT" }, "dataFilters": [ { "developerMetadataLookup": { "metadataId": metadataId } } ] }, { "developerMetadata": { "metadataId": metadataId, "metadataKey": "Sales", "metadataValue": "2022", "location": { "locationType": "SHEET", "sheetId": sheetId }, "visibility": "DOCUMENT" }, "dataFilters": [ { "developerMetadataLookup": { "metadataId": metadataId } } ] } ] }
मेटाडेटा अपडेट करें
डेवलपर मेटाडेटा अपडेट करने के लिए, spreadsheets.batchUpdate
तरीके का इस्तेमाल करें और UpdateDeveloperMetadataRequest
उपलब्ध कराएं.
आपको अपडेट किए जाने वाले मेटाडेटा को टारगेट करने वाला DataFilter
, नई वैल्यू वाला DeveloperMetadata
ऑब्जेक्ट, और अपडेट किए जाने वाले फ़ील्ड के बारे में बताने वाला फ़ील्ड मास्क तय करना होगा.
इस उदाहरण में, हमने अनुरोध में मेटाडेटा आईडी, शीट आईडी, और नई मेटाडेटा कुंजी दी है. जवाब में, डेवलपर मेटाडेटा की ये वैल्यू और अपडेट की गई मेटाडेटा कुंजी दिखती हैं.
अनुरोध
{ "requests": [ { "updateDeveloperMetadata": { "dataFilters": [ { "developerMetadataLookup": { "metadataId": metadataId } } ], "developerMetadata": { "location": { "sheetId": sheetId }, "metadataKey": "SalesUpdated" }, "fields": "location,metadataKey" } } ] }
जवाब
{ "spreadsheetId": spreadsheetId, "replies": [ { "updateDeveloperMetadata": { "developerMetadata": [ { "metadataId": metadataId, "metadataKey": "SalesUpdated", "metadataValue": "2022", "location": { "locationType": "SHEET", "sheetId": sheetId }, "visibility": "DOCUMENT" } ] } } ] }
मेटाडेटा मिटाना
डेवलपर मेटाडेटा मिटाने के लिए, batchUpdate तरीके का इस्तेमाल करें. साथ ही, DeleteDeveloperMetadataRequest उपलब्ध कराएं.
आपको DataFilter
तय करना होगा, ताकि उस मेटाडेटा को चुना जा सके जिसे मिटाना है.
इस उदाहरण में, हमने अनुरोध में मेटाडेटा आईडी दिया है. जवाब में, मेटाडेटा आईडी के लिए डेवलपर मेटाडेटा की वैल्यू दिखती हैं.
डेवलपर मेटाडेटा हटा दिया गया है, इसकी पुष्टि करने के लिए spreadsheets.developerMetadata.get तरीके का इस्तेमाल करें. इसके लिए, मिटाए गए मेटाडेटा आईडी की जानकारी दें. आपको 404: Not Found
एचटीटीपी स्टेटस कोड वाला जवाब मिलेगा. इसमें यह मैसेज होगा कि "metadataId आईडी वाला कोई डेवलपर मेटाडेटा मौजूद नहीं है.
अनुरोध
{ "requests": [ { "deleteDeveloperMetadata": { "dataFilter": { "developerMetadataLookup": { "metadataId": metadataId } } } } ] }
जवाब
{ "spreadsheetId": spreadsheetId, "replies": [ { "deleteDeveloperMetadata": { "deletedDeveloperMetadata": [ { "metadataId": metadataId, "metadataKey": "SalesUpdated", "metadataValue": "2022", "location": { "locationType": "SHEET", "sheetId": sheetId }, "visibility": "DOCUMENT" } ] } } ] }
मेटाडेटा से जुड़ी वैल्यू को पढ़ना और लिखना
इसके अलावा, डेवलपर के मेटाडेटा और अपडेट की जाने वाली वैल्यू के बारे में बताकर, पंक्तियों और कॉलम में मौजूद सेल की वैल्यू को वापस पाया जा सकता है और उन्हें अपडेट किया जा सकता है. इसके लिए, यहां दिए गए तरीकों में से सही तरीका अपनाएं. साथ ही, उससे मिलता-जुलता DataFilter
इस्तेमाल करें.
मेटाडेटा के हिसाब से सेल की वैल्यू पाना
मेटाडेटा के हिसाब से सेल की वैल्यू पाने के लिए, spreadsheets.values.batchGetByDataFilter तरीके का इस्तेमाल करें. आपको स्प्रेडशीट आईडी और एक या उससे ज़्यादा ऐसे डेटा फ़िल्टर देने होंगे जो मेटाडेटा से मेल खाते हों.
इस उदाहरण में, हमने अनुरोध में मेटाडेटा आईडी दिया है. जवाब में, मेटाडेटा आईडी के लिए लाइन में मौजूद सेल की वैल्यू (मॉडल नंबर, हर महीने की बिक्री) दिखती हैं.
अनुरोध
{ "dataFilters": [ { "developerMetadataLookup": { "metadataId": metadataId } } ], "majorDimension": "ROWS" }
जवाब
{ "spreadsheetId": spreadsheetId, "valueRanges": [ { "valueRange": { "range": "Sheet7!A7:Z7", "majorDimension": "ROWS", "values": [ [ "W-24", "74" ] ] }, "dataFilters": [ { "developerMetadataLookup": { "metadataId": metadataId } } ] } ] }
मेटाडेटा के हिसाब से स्प्रेडशीट पाना
स्प्रेडशीट वापस पाने के दौरान, spreadsheets.getByDataFilter तरीके का इस्तेमाल करके, डेटा का सबसेट वापस पाया जा सकता है. आपको स्प्रेडशीट आईडी और एक या उससे ज़्यादा ऐसे डेटा फ़िल्टर देने होंगे जो मेटाडेटा से मेल खाते हों.
यह अनुरोध, "स्प्रेडशीट GET" के सामान्य अनुरोध की तरह काम करता है. हालांकि, इसमें यह तय करने के लिए कि मेटाडेटा वाली कौनसी शीट, ग्रिड डेटा, और अन्य ऑब्जेक्ट संसाधन दिखाए जाएं, यह देखा जाता है कि दिए गए डेटा फ़िल्टर से कौनसा मेटाडेटा मैच होता है. अगर includeGridData
को सही पर सेट किया जाता है, तो तय की गई ग्रिड रेंज से इंटरसेक्ट करने वाले ग्रिड डेटा को भी शीट के लिए वापस लाया जाता है.
इस उदाहरण में, हमने अनुरोध में मेटाडेटा आईडी दिया है और includeGridData को false पर सेट किया है. जवाब में, स्प्रेडशीट और शीट, दोनों की प्रॉपर्टी दिखती हैं.
अनुरोध
{ "dataFilters": [ { "developerMetadataLookup": { "metadataId": metadataId } } ], "includeGridData": false }
जवाब
{ "spreadsheetId": spreadsheetId, "properties": { "title": "Sales Sheet", "locale": "en_US", "autoRecalc": "ON_CHANGE", "timeZone": "America/Los_Angeles", "defaultFormat": { "backgroundColor": { "red": 1, "green": 1, "blue": 1 }, "padding": { "top": 2, "right": 3, "bottom": 2, "left": 3 }, "verticalAlignment": "BOTTOM", "wrapStrategy": "OVERFLOW_CELL", "textFormat": { "foregroundColor": {}, "fontFamily": "arial,sans,sans-serif", "fontSize": 10, "bold": false, "italic": false, "strikethrough": false, "underline": false, "foregroundColorStyle": { "rgbColor": {} } }, "backgroundColorStyle": { "rgbColor": { "red": 1, "green": 1, "blue": 1 } } }, "spreadsheetTheme": { "primaryFontFamily": "Arial", "themeColors": [ { "colorType": "TEXT", "color": { "rgbColor": {} } }, { "colorType": "BACKGROUND", "color": { "rgbColor": { "red": 1, "green": 1, "blue": 1 } } }, { "colorType": "ACCENT1", "color": { "rgbColor": { "red": 0.25882354, "green": 0.52156866, "blue": 0.95686275 } } }, { "colorType": "ACCENT2", "color": { "rgbColor": { "red": 0.91764706, "green": 0.2627451, "blue": 0.20784314 } } }, { "colorType": "ACCENT3", "color": { "rgbColor": { "red": 0.9843137, "green": 0.7372549, "blue": 0.015686275 } } }, { "colorType": "ACCENT4", "color": { "rgbColor": { "red": 0.20392157, "green": 0.65882355, "blue": 0.3254902 } } }, { "colorType": "ACCENT5", "color": { "rgbColor": { "red": 1, "green": 0.42745098, "blue": 0.003921569 } } }, { "colorType": "ACCENT6", "color": { "rgbColor": { "red": 0.27450982, "green": 0.7411765, "blue": 0.7764706 } } }, { "colorType": "LINK", "color": { "rgbColor": { "red": 0.06666667, "green": 0.33333334, "blue": 0.8 } } } ] } }, "sheets": [ { "properties": { "sheetId": sheetId, "title": "Sheet7", "index": 7, "sheetType": "GRID", "gridProperties": { "rowCount": 1000, "columnCount": 26 } } } ], "spreadsheetUrl": spreadsheetUrl }
मेटाडेटा के हिसाब से वैल्यू अपडेट करना
किसी खास मेटाडेटा से मेल खाने वाली सेल की वैल्यू अपडेट करने के लिए, spreadsheets.values.batchUpdateByDataFilter तरीके का इस्तेमाल करें. आपको स्प्रेडशीट आईडी,
valueInputOption
,
और एक या उससे ज़्यादा
DataFilterValueRange
की जानकारी देनी होगी, जो मेटाडेटा से मेल खाती हो.
इस उदाहरण में, हमने अनुरोध में मेटाडेटा आईडी और अपडेट की गई लाइन की वैल्यू दी हैं. जवाब में, मेटाडेटा आईडी के लिए अपडेट की गई प्रॉपर्टी और डेटा, दोनों मिलते हैं.
अनुरोध
{ "data": [ { "dataFilter": { "developerMetadataLookup": { "metadataId": metadataId } }, "majorDimension": "ROWS", "values": [ [ "W-24", "84" ] ] } ], "includeValuesInResponse": true, "valueInputOption": "USER_ENTERED" }
जवाब
{ "spreadsheetId": spreadsheetId, "totalUpdatedRows": 1, "totalUpdatedColumns": 2, "totalUpdatedCells": 2, "totalUpdatedSheets": 1, "responses": [ { "updatedRange": "Sheet7!A7:B7", "updatedRows": 1, "updatedColumns": 2, "updatedCells": 2, "dataFilter": { "developerMetadataLookup": { "metadataId": metadataId } }, "updatedData": { "range": "Sheet7!A7:Z7", "majorDimension": "ROWS", "values": [ [ "W-24", "84" ] ] } } ] }
मेटाडेटा के हिसाब से वैल्यू हटाएं
किसी खास मेटाडेटा से मेल खाने वाली सेल की वैल्यू मिटाने के लिए, spreadsheets.values.batchClearByDataFilter तरीके का इस्तेमाल करें. आपको मेटाडेटा चुनने के लिए, डेटा फ़िल्टर तय करना होगा.
अनुरोध
इस उदाहरण में, हमने अनुरोध में मेटाडेटा आईडी दिया है. जवाब में, स्प्रेडशीट आईडी और मिटाई गई रेंज की जानकारी मिलती है.
{ "dataFilters": [ { "developerMetadataLookup": { "metadataId": metadataId } } ] }
जवाब
{ "spreadsheetId": spreadsheetId, "clearedRanges": [ "Sheet7!A7:Z7" ] }
मेटाडेटा के स्टोरेज की सीमाएं
स्प्रेडशीट में सेव किए जा सकने वाले मेटाडेटा की कुल सीमा तय है. इस सीमा को वर्णों में मापा जाता है. इसमें दो कॉम्पोनेंट होते हैं:
आइटम | स्टोरेज की सीमा तय करना |
---|---|
स्प्रेडशीट | 30,000 वर्ण |
स्प्रेडशीट में मौजूद हर शीट | 30,000 वर्ण |
स्प्रेडशीट के लिए, ज़्यादा से ज़्यादा 30,000 वर्ण सेव किए जा सकते हैं. इसके अलावा, स्प्रेडशीट में मौजूद हर शीट के लिए 30,000 वर्ण सेव किए जा सकते हैं. जैसे,पहली शीट के लिए 30, 000 वर्ण,दूसरी शीट के लिए 30, 000 वर्ण वगैरह. इसलिए, तीन पेजों वाली स्प्रेडशीट में डेवलपर मेटाडेटा के तौर पर 1,20,000 वर्ण शामिल किए जा सकते हैं.
developerMetadata
ऑब्जेक्ट के मुख्य और वैल्यू एट्रिब्यूट में मौजूद हर वर्ण को इस सीमा में शामिल करके गिना जाता है.