গুগল স্প্রেডশিটে নির্দিষ্ট শিটের লিঙ্ক


47

আমার কাছে অনেকগুলি শীট এবং সামগ্রীর টেবিল সহ একটি জটিল গুগল স্প্রেডশিট রয়েছে। শীটের নামের সাথে কোনও লিঙ্ক তৈরি করার কোনও উপায় আছে যাতে ক্লিকের মাধ্যমে কেউ শীটে সরাসরি যেতে পারে? তা হল: "শীট 5" ঘরে ক্লিক করে শীট 5 এ স্যুইচ হয়?


1
এখন গুগল স্প্রেডশিটে এমন একটি বিকল্প রয়েছে - আপনি সন্নিবেশ -> লিঙ্কটি নির্বাচন করতে পারেন এবং এই স্প্রেডশিটে শীট চয়ন করতে পারেন। আফসোস, উত্তর হিসাবে এটি পোস্ট করার জন্য আমার সুনামের দরকার নেই।
বোরিস স্ট্রান্ডজেভ

উত্তর:


59

আপনি যখন গুগল স্প্রেডশিটগুলিতে অন্য কোনও শীটে স্যুইচ করেন, আপনার ব্রাউজারের ঠিকানা বারের URL এ মনোযোগ দিন। ইউআরএল শেষে আপনার এমন কিছু দেখতে পাওয়া উচিত:

#gid=0

আপনি শিটগুলি স্যুইচ করার সময় এই সংখ্যাটি পরিবর্তন হয় এবং কোন শীটটি প্রদর্শন করতে হবে তা নির্দিষ্ট করে। পুরো ইউআরএল অনুলিপি করুন এবং এই সূত্রটি দিয়ে এটিতে একটি হাইপার লিঙ্ক তৈরি করুন:

=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. থেকে শুরু তাই আপনি যদি "Sheet5" নামে একটি চাদর হয় বাম gid=7, এটা বাম দিক থেকে অষ্টম শীট হওয়া উচিত।
উইলিয়াম জ্যাকসন

1
আমি বলতে চাচ্ছি তা হল, আপনি খুঁজে খুঁজে পাচ্ছি না programatically কি gidSheet5, শুধুমাত্র ম্যানুয়ালি। যদি এটির অবস্থান পরিবর্তন হয় তবে এটি gidপরিবর্তন হয় এবং আপনি আর এটির সাথে নির্ভরযোগ্যভাবে লিঙ্ক করতে পারবেন না।
সাইমন ইস্ট

যদি আপনি নামের সাথে লিঙ্ক করার কোনও উপায় বের করেন তবে দয়া করে এটি পোস্ট করুন!
জো ক্যাসাডন্টে


7

আমার অভিজ্ঞতা থেকে এটি করার সর্বোত্তম উপায় হ'ল একটি বোতাম / চিত্রের সাথে একটি ফাংশন বেঁধে রাখা। একমাত্র ব্যর্থতা হ'ল আপনি কোনও বোতামে নির্ধারিত স্ক্রিপ্টের সাথে পরামিতিগুলি পাস করতে পারবেন না। এ কারণে আপনার প্রতিটি নেভিগেশনের জন্য নির্দিষ্ট একটি ফাংশন তৈরি করতে হবে তবে তারা একটি একক স্ক্রিপ্ট ফাইলে একটি হতে পারে।

পদক্ষেপ:

একটি চিত্র তৈরি করুন (--োকান -> চিত্র) এবং এটি আপনার পছন্দ অনুযায়ী স্টাইল করুন

নিম্নলিখিতগুলির সাথে একটি কাস্টম ফাংশন তৈরি করুন:

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

এবং তারপরে আপনার বোতামের সাথে নির্দিষ্ট একটি ফাংশন

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

অবশেষে আপনার বোতামে এই ফাংশনটি বরাদ্দ করুন

Assign Script...
showSheet5

আপনার এখন আপনার বোতামে ক্লিক করতে এবং "শীট 5" এ নেভিগেট করতে সক্ষম হওয়া উচিত। এটির পাশাপাশি শীটের একটি নির্দিষ্ট জায়গায় যেতেও এটি পরিবর্তন করা যেতে পারে।


প্রতিটি বোতামের সাথে নির্দিষ্ট কোনও ফাংশন যুক্ত করার পরিবর্তে, আপনি এটিকে "বর্তমান সেল" নামক শিটটিতে লাফাতে হার্ডকোড করতে পারেন, উদাহরণস্বরূপ ২ য় লাইনটি পড়তে পরিবর্তন করুন var sheet = ss.getSheetByName(ss.getActiveCell().getValue()); - আপনি তারপরে স্ক্রিনের একটি নির্দিষ্ট স্থানে "বোতাম" রাখতে পারেন এবং এটিকে "বর্তমান কক্ষে শীটটিতে ঝাঁপুন" লেবেল করুন এবং এটিকে "শো শিটবাইনেম" বরাদ্দ করুন (যা এখন প্যারামিটারের দরকার নেই)। ব্যবহার করতে, কেবল একটি শিটের নাম (যেমন শিট 5) দিয়ে ঘরটি হাইলাইট করুন এবং বোতামটি টিপুন। এটি সামান্য পরোক্ষ তবে কাজ করে কারণ একটি বোতামে ক্লিক করা হাইলাইট করা ঘর থেকে ফোকাস সরিয়ে দেয় না।
মোটি স্টর্ম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.