तो क्या मैं ओपी से समझते हैं कि आप एक मास्टर स्प्रेडशीट है कि आप अलग-अलग शीट के लिंक करना चाहते हैं कि है, जहां उनमें से एक या अधिक शीट एकल या गुणक में हो सकती है ई स्प्रेडशीट फाइलें।
HYPERLINK
फ़ंक्शन केवल एक यूआरएल को हाइपरलिंक में बदल देता है और वास्तव में केवल तब उपयोगी होता है जब आप केवल एक लिंक के बजाय हाइपरटेक्स्ट करना चाहते हैं। यदि आप कच्चे यूआरएल को डेटा के रूप में दर्ज करते हैं, तो यह स्वचालित रूप से हाइपरलिंक में बदल जाता है, इसलिए कोई अतिरिक्त काम नहीं होता है।
जैसा कि अन्य उत्तरों में बताया गया है, समाधान स्प्रेडशीट का यूआरएल होना चाहिए, फिर स्प्रेडशीट के भीतर वांछित शीट के लिंक की गणना करने के लिए gid
मान का उपयोग करें। आप एक साधारण ऐप लिख सकते हैं जो सभी व्यक्तिगत चादरों के लिंक एकत्र करता है और उन्हें मास्टर में लिखता है।
नीचे छद्म कोड (पायथन) के कुछ स्निपेट हैं जो आपको प्रारंभ करने में मदद कर सकते हैं। मैं सभी बॉयलरप्लेट ऑथ कोड छोड़ रहा हूं, लेकिन अगर आपको इसकी ज़रूरत है, तो this blog post और this video देखें। नीचे दिया गया कोड मानता है कि आपकी एपीआई सेवा एंडपॉइंट SHEETS
है।
यह अपने चादरों से प्रत्येक के लिए लिंक के निर्माण के लिए एक लक्ष्य स्प्रेडशीट पढ़ता है:
# open target Sheet, get all sheets & Sheet URL
SHEET_ID = TARGET_SHEET_DRIVE_FILE_ID
res = SHEETS.spreadsheets().get(spreadsheetId=SHEET_ID,
fields='sheets,spreadsheetUrl').execute()
sheets = res.get('sheets', [])
url = res['spreadsheetUrl']
# for each sheet, dump out its name & full URL
for sheet in sheets:
data = sheet['properties']
print('** Sheet title: %r' % data['title'])
print(' - Link: %s#gid=%s' % (url, data['sheetId']))
स्क्रीन पर मुद्रण के बजाय
, मान लीजिए कि आप अपने ऐप्लिकेशन में (name, URL)
2-टपल सरणी में उन्हें संग्रहीत करते हैं, तो नीचे
sheet_data = [
('Intro', 'https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=5'),
('XData', 'https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=3'),
('YData', 'https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=7')
]
फिर आप उन्हें गुरु को लिख सकते हैं इस तरह (ऊपरी-बाएं कोने, सेल A1
से शुरू): लाइन, यह इस सूची की तरह कुछ sheet_data
बुलाया लग रहा है
+०१२३५१६४१०६
SHEET_ID = MASTER_SHEET_DRIVE_FILE_ID
SHEETS.spreadsheets().values().update(
spreadsheetId=SHEET_ID, range='A1',
body={'values': sheet_data},
valueInputOption='USER_ENTERED'
).execute()
कुछ चेतावनियां जब gid
का उपयोग कर:
फिर जब आप शीट्स यूआई में मास्टर खोलते हैं, तो आप किसी भी व्यक्तिगत शीट पर क्लिक कर सकते हैं, भले ही वे किस स्प्रेडशीट फाइलों में हों। यदि आप उन्हें किसी अन्य ऐप या स्क्रिप्ट द्वारा स्वचालित रूप से खोला चाहते हैं, तो अधिकांश प्रोग्रामिंग भाषाएं डेवलपर्स को लक्षित यूआरएल दिए गए वेब ब्राउजर को लॉन्च करने के तरीकों की पेशकश करें। अजगर में, यह webbrowser
मॉड्यूल (docs) होगा:
import webbrowser
webbrowser.open_new(url) # or webbrowser.open_new_tab(url)
अविश्वसनीय यह एक मानक विशेषता नहीं है। वर्कअराउंड के लिए धन्यवाद – Brandon
मुझे यह उत्तर उपयोगी पाया .. बस एक टिप्पणी जोड़ना: "एक और [ब्राउज़र] टैब में खुलता है" वास्तव में केवल एक समस्या है यदि आप उसी वर्कशीट को उसी स्प्रेडशीट दस्तावेज़ से जोड़ रहे हैं। यदि आपका उदाहरण मेरी तरह है, तो आप एक HTML या विकी पेज को एक विशिष्ट वर्कशीट से जोड़ रहे हैं, फिर कोई चिंता नहीं .... #gid चाल काम करती है (लंबे समय तक कोई भी वर्कशीट टैब को हटा देता है ... नोट करना बहुत महत्वपूर्ण है कि #gid एक निश्चित स्थिति संख्या है, इसलिए बाईं ओर से चौथी वर्कशीट # गीड = 3 होगी)। –