আমার কাছে অনেকগুলি শীট এবং সামগ্রীর টেবিল সহ একটি জটিল গুগল স্প্রেডশিট রয়েছে। শীটের নামের সাথে কোনও লিঙ্ক তৈরি করার কোনও উপায় আছে যাতে ক্লিকের মাধ্যমে কেউ শীটে সরাসরি যেতে পারে? তা হল: "শীট 5" ঘরে ক্লিক করে শীট 5 এ স্যুইচ হয়?
আমার কাছে অনেকগুলি শীট এবং সামগ্রীর টেবিল সহ একটি জটিল গুগল স্প্রেডশিট রয়েছে। শীটের নামের সাথে কোনও লিঙ্ক তৈরি করার কোনও উপায় আছে যাতে ক্লিকের মাধ্যমে কেউ শীটে সরাসরি যেতে পারে? তা হল: "শীট 5" ঘরে ক্লিক করে শীট 5 এ স্যুইচ হয়?
উত্তর:
আপনি যখন গুগল স্প্রেডশিটগুলিতে অন্য কোনও শীটে স্যুইচ করেন, আপনার ব্রাউজারের ঠিকানা বারের 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;
}
স্ক্রিপ্টটি সংরক্ষণ করুন, তারপরে স্প্রেডশিটটি রিফ্রেশ করুন। একটি দ্বিতীয় বা দুই একটি নতুন মেনু পর কার্যগুলি , পরে প্রদর্শিত হবে সাহায্য । এই মেনুতে একটি আইটেম রয়েছে: শীটে যান ...
এই মেনু আইটেমটি বর্তমান স্প্রেডশিটের সমস্ত শীটের নামের একটি তালিকা সহ একটি প্যানেল খুলবে। এটি দেখে মনে হচ্ছে না তবে আপনি যদি শীটের নামের কোনওটিতে ক্লিক করেন তবে সেই শীটটি সামনে চলে আসবে।
অন্য প্রশ্নের উত্তর হিসাবে, এই স্ক্রিপ্টটি একটি স্ক্রোলযোগ্য ভিউ এবং বোতাম অন্তর্ভুক্ত করার জন্য উন্নত করা হয়েছিল ।
gid=7
।
gid=7
, এটা বাম দিক থেকে অষ্টম শীট হওয়া উচিত।
gid
Sheet5, শুধুমাত্র ম্যানুয়ালি। যদি এটির অবস্থান পরিবর্তন হয় তবে এটি gid
পরিবর্তন হয় এবং আপনি আর এটির সাথে নির্ভরযোগ্যভাবে লিঙ্ক করতে পারবেন না।
আমার অভিজ্ঞতা থেকে এটি করার সর্বোত্তম উপায় হ'ল একটি বোতাম / চিত্রের সাথে একটি ফাংশন বেঁধে রাখা। একমাত্র ব্যর্থতা হ'ল আপনি কোনও বোতামে নির্ধারিত স্ক্রিপ্টের সাথে পরামিতিগুলি পাস করতে পারবেন না। এ কারণে আপনার প্রতিটি নেভিগেশনের জন্য নির্দিষ্ট একটি ফাংশন তৈরি করতে হবে তবে তারা একটি একক স্ক্রিপ্ট ফাইলে একটি হতে পারে।
পদক্ষেপ:
একটি চিত্র তৈরি করুন (--োকান -> চিত্র) এবং এটি আপনার পছন্দ অনুযায়ী স্টাইল করুন
নিম্নলিখিতগুলির সাথে একটি কাস্টম ফাংশন তৈরি করুন:
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) দিয়ে ঘরটি হাইলাইট করুন এবং বোতামটি টিপুন। এটি সামান্য পরোক্ষ তবে কাজ করে কারণ একটি বোতামে ক্লিক করা হাইলাইট করা ঘর থেকে ফোকাস সরিয়ে দেয় না।