Google स्प्रेडशीट में विशिष्ट शीट से लिंक करें


47

मेरे पास कई शीट और सामग्री की तालिका के साथ एक जटिल Google स्प्रेडशीट है। क्या शीट नामों के लिए लिंक बनाने का कोई तरीका है ताकि एक क्लिक के साथ सीधे शीट पर जा सकें? वह है: सेल "शीट 5" पर क्लिक करके शीट 5 पर स्विच करना?


1
अब Google स्प्रेडशीट में ऐसा विकल्प है - आप इस स्प्रेडशीट में सम्मिलित करें -> लिंक का चयन कर सकते हैं और शीट का चयन कर सकते हैं। अफसोस, मुझे यह जवाब के रूप में पोस्ट करने के लिए आवश्यक प्रतिष्ठा नहीं है।
बोरिस स्ट्रैंडजेव

जवाबों:


59

जब आप Google स्प्रेडशीट में एक अलग शीट पर जाते हैं, तो अपने ब्राउज़र के एड्रेस बार में URL पर ध्यान दें। URL के अंत में आपको कुछ इस तरह देखना चाहिए:

#gid=0

जब आप शीट स्विच करते हैं तो यह संख्या बदल जाती है, और यह प्रदर्शित करने के लिए कौन सी शीट निर्दिष्ट करता है। पूरे URL को कॉपी करें और इस सूत्र के साथ एक हाइपरलिंक बनाएं:

=hyperlink("https://docs.google.com/spreadsheet/ccc?key=0AsaQpHJE_LShcDJ0dWNudHFZWVJqS1dvb3FLWkVrS0E#gid=0", "LINK TEXT")

एक स्क्रिप्ट के साथ

मैंने इस प्रश्न के बारे में बहुत सोचा है क्योंकि मैंने पहली बार यह उत्तर लिखा था, और मैं एक समाधान के साथ आया जिसमें एक स्क्रिप्ट शामिल है।

स्प्रेडशीट खोल कर, क्लिक करें उपकरण मेनू, फिर स्क्रिप्ट संपादक ... । इस सभी कोड को संपादक में पेस्ट करें:

function onOpen(event) {
  var ss = event.source;
  var menuEntries = [];
  menuEntries.push({name: "Go to sheet...", functionName: "showGoToSheet"});
  ss.addMenu("Tasks", menuEntries);
}

function showGoToSheet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var allsheets = ss.getSheets();
  var app = UiApp.createApplication();
  app.setTitle("Go to sheet...").setWidth(800).setHeight(600);
  var table = app.createFlexTable();
  table.setCellPadding(5).setCellSpacing(0);
  var goToSheetClick = app.createServerHandler('handleGoToSheetClick');
  var widgets = [];
  for (var i = 0; i < allsheets.length; i++) {
    var sheet_name = allsheets[i].getName();
    widgets[i] = app.createHTML(sheet_name).setId(sheet_name).addClickHandler(goToSheetClick);
    table.setWidget(i, 1, widgets[i])
  }
  var panel = app.createSimplePanel();
  panel.add(table);
  app.add(panel);
  ss.show(app);
}

function handleGoToSheetClick(e) {
  var sheet_name = e.parameter.source;
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(sheet_name);
  sheet.activate();
  var app = UiApp.getActiveApplication();
  app.close();
  return app;
}

स्क्रिप्ट को सहेजें, फिर स्प्रेडशीट को ताज़ा करें। दूसरे या दो नए मेनू के बाद, टास्क , हेल्प के बाद दिखाई देगा । इस मेनू में एक आइटम है: शीट पर जाएं ...

कार्य> पत्रक पर जाएं ...

यह मेनू आइटम मौजूदा स्प्रेडशीट में सभी शीट्स के नामों की सूची के साथ एक पैनल खोलेगा। यह ऐसा नहीं दिखता है, लेकिन यदि आप शीट के नामों में से एक पर क्लिक करते हैं, तो वह शीट सामने आ जाएगी।


एक अन्य प्रश्न के उत्तर के रूप में, इस स्क्रिप्ट को स्क्रॉल करने योग्य दृश्य और बटन शामिल करने के लिए सुधार किया गया था


हाँ, मुझे लगता है कि यह इस समय एकमात्र व्यवहार्य समाधान है। दुर्भाग्य से मुझे "शीट 5" और नाम के बीच अनुवाद करने का कोई तरीका नहीं मिला है gid=7
साइमन ईस्ट

मुझे यकीन नहीं है कि तुम क्या मतलब है। शीट को बाईं ओर से क्रमांक 0 से शुरू किया जाता है। इसलिए यदि "शीट 5" नाम की एक शीट है gid=7, तो यह बाईं ओर से आठवीं शीट होनी चाहिए।
विलियम जैक्सन

1
मेरा मतलब है कि, आप प्रोग्रामेटिकली यह पता नहीं लगा सकते हैं कि gidशीट 5 केवल मैन्युअल रूप से क्या है। यदि यह स्थिति परिवर्तन है, तो यह gidपरिवर्तन है, और आप इसे मज़बूती से लिंक नहीं कर सकते।
साइमन ईस्ट

यदि आप नाम से लिंक करने का कोई तरीका जानते हैं, तो कृपया इसे पोस्ट करें!
जो कैसडोनेट

1
बेहतर विकल्प यहां उपलब्ध है: stackoverflow.com/a/18518779/1814867
मंदार पंडित

7

मेरे अनुभव से ऐसा करने का सबसे अच्छा तरीका एक फ़ंक्शन को बटन / छवि से जोड़ना है। एकमात्र दोष यह है कि आप एक बटन को सौंपी गई स्क्रिप्ट के साथ पैरामीटर पारित नहीं कर सकते हैं। इसके कारण आपको प्रत्येक नेविगेशन के लिए एक फ़ंक्शन को विशिष्ट बनाने की आवश्यकता होगी, लेकिन वे एक स्क्रिप्ट फ़ाइल में कॉल कर सकते हैं।

कदम:

एक छवि बनाएं (डालें -> छवि) और इसे अपनी पसंद के अनुसार स्टाइल करें

निम्नलिखित के साथ एक कस्टम फ़ंक्शन बनाएँ:

function showSheetByName(Name) {
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var sheet = ss.getSheetByName(Name);
   SpreadsheetApp.setActiveSheet(sheet);
}

और फिर अपने बटन के लिए एक समारोह विशिष्ट

function showSheet5() {
   showSheetByName("Sheet5");
}

अंत में इस फ़ंक्शन को अपने बटन पर असाइन करें

Assign Script...
showSheet5

अब आपको अपने बटन पर क्लिक करने और "शीट 5" पर नेविगेट करने में सक्षम होना चाहिए। यह चादर के एक विशिष्ट क्षेत्र में जाने के लिए भी संशोधित किया जा सकता है।


प्रत्येक बटन के लिए एक फ़ंक्शन को जोड़ने के बजाय, आप इसे "वर्तमान सेल" नाम की शीट पर कूदने के लिए हार्डकोड कर सकते हैं, उदाहरण के लिए पढ़ने के लिए 2 पंक्ति को बदल दें var sheet = ss.getSheetByName(ss.getActiveCell().getValue()); - फिर आप स्क्रीन पर एक निश्चित स्थान पर "बटन" डाल सकते हैं और इसे "वर्तमान सेल में शीट पर जाएं" लेबल करें और इसे "showSheetByName" असाइन करें (जिसे अब पैरामीटर की आवश्यकता नहीं है)। उपयोग करने के लिए, बस सेल को शीट नाम (जैसे शीट 5) के साथ हाइलाइट करें और बटन पर क्लिक करें। यह थोड़ा अप्रत्यक्ष है लेकिन काम करता है क्योंकि बटन पर क्लिक करने से हाइलाइटेड सेल से फोकस नहीं हटता है।
मोति स्ट्रोम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.