গুগল শীটে একটি স্ক্রিপ্ট ট্রিগার যুক্ত করুন যা অ্যান্ড্রয়েড মোবাইল অ্যাপে কাজ করবে


13

আমার একটি গুগল শীট রয়েছে যাতে একটি স্ক্রিপ্ট রয়েছে যা একটি বোতামে ক্লিক করার সময় চালানো উচিত। এটি করার প্রস্তাবিত উপায়টি (যতদূর আমি বলতে পারি) হ'ল একটি চিত্র sertোকানো এবং তারপরে প্রশ্নযুক্ত চিত্রটিতে একটি স্ক্রিপ্ট সংযুক্ত করা।

এটি যতক্ষণ না আমি আমার ডেস্কটপে শীটটি খোলি ঠিক ততক্ষণ ঠিক কাজ করে। তবে আমি যদি অ্যান্ড্রয়েড গুগল শীট অ্যাপে শীটটি খুলি তবে চিত্রটি কেবল উপস্থিত হয় না। যতদূর আমি এটি বলতে পারি (আচরণের অভাব) কোথাও নথিভুক্ত করা হয়নি, তবে একই সংখ্যক লোককে আমি খুঁজে পেয়েছি।

আমি ভাবছিলাম যে আমি কীভাবে এই সমস্যাটি ঘটাচ্ছি। আমি কি এমন কিছু স্পষ্ট করে মিস করেছি যা আমার চিত্রগুলি অ্যান্ড্রয়েড অ্যাপে দৃশ্যমান করে তুলবে? বা মোবাইলে কাজ করবে এমন কোনও শীটে স্ক্রিপ্ট ট্রিগার যুক্ত করার আরও একটি সহজ উপায় আছে?


2
এটি আসলে অ্যান্ড্রয়েডের নেটিভ শিটস অ্যাপ্লিকেশনটির সাথে একটি সমস্যা, তাই না? আপনার প্রশ্নটি সম্ভবত অ্যান্ড্রয়েড অনুরাগীদের থেকে আরও ভাল ।
বীয়ার

1
@AlE। এটি দেখার একটি উপায় এটি, তবে সমস্যাটি কাটিয়ে উঠতে Android এর জ্ঞান নয়, গুগল শিটের জ্ঞান প্রয়োজন।

@ সাধারণ: এই কারণেই আমি প্রশ্ন জিজ্ঞাসা করেছি (এবং বন্ধ করার পক্ষে ভোট দেয়নি)। আমি কেবল জিজ্ঞাসাবাদীর একটি উত্তর পেতে প্রয়োজনীয় বিশেষজ্ঞ (ইসি) আকর্ষণ করতে সহায়তা করার চেষ্টা করছি।
আলে

উত্তর:


26

দেখে মনে হচ্ছে বর্তমানে চিত্রগুলি বা কাস্টম মেনু আইটেমগুলি শীট অ্যান্ড্রয়েড অ্যাপে কাজ করে না। আমি স্প্রেডশিটের মধ্যে একটি "ফাংশন মেনু" তৈরি করার পরামর্শ দিচ্ছি। উদাহরণ স্বরূপ:

  1. সেল এ 1 বলছে "একটি ফাংশন নির্বাচন করুন"
  2. সেল বি 1 এর একটি ডেটা বৈধকরণের নিয়ম রয়েছে যা আপনার ফাংশনগুলির নামগুলিতে সামগ্রীটি সীমাবদ্ধ করে। আমার উদাহরণে, তারা হ'ল "ইনসার্টসোমথিং" এবং "কনভার্টসোমথিং"। (ডেটা বৈধতা সংলাপে "সহায়তা দেখান" পরীক্ষা করবেন না, "সহায়তা" পপআপটি মোবাইলে বিরক্তি)
  3. onEditপ্রতিটি সম্পাদনা চলমান একটি স্ক্রিপ্ট ফাংশন (সাধারণ ট্রিগার), বি 1 এর সামগ্রী পরিবর্তন হয়েছে কিনা তা পরীক্ষা করে। যদি তা হয় তবে এটি উপযুক্ত ফাংশনটি চালায়।

এখানে প্রদর্শনের উদ্দেশ্যে অন্তর্ভুক্ত দুটি ফাংশন সহ আমার কোডটি এখানে রয়েছে:

function onEdit(e) {
  if (e.range.getA1Notation() == 'B1') {
    if (/^\w+$/.test(e.value)) {        
      this[e.value]();
      e.range.clear();
    }
  }
}

function insertSomething() { 
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(2,3).setValue('inserted something');
}  

function convertSomething() { 
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(3,3).setValue('converted something');
}  

শর্তটি /^\w+$/.test(e.value)কেবলমাত্র আমাদের কাছে কোনও দুর্দান্ত স্ট্রিং আছে কিনা তা পরীক্ষা করে দেখার জন্য এবং কেউ কেউ কোনওভাবে সেল বি 1 তে রেখেছিল এমন দূষিত কোডটি কার্যকর করছে না। ফাংশনটি দ্বারা উদ্বেগ প্রকাশিত হওয়ার পরে this[e.value]();( thisবিশ্বব্যাপী অবজেক্টটিকে বোঝায় এবং ফাংশনের নাম রয়েছে) বি 1 এর বিষয়বস্তু সাফ হয়ে যায়। কেউ আবার একই ফাংশনটি চালানোর জন্য বা অন্য কোনওটি বেছে নিতে পারে।

ধারণার প্রমাণ হিসাবে, এখানে অ্যাপ্লিকেশনটির স্ক্রিনশট রয়েছে। স্ক্রিনশট 1: নির্বাচন একটি ফাংশন

পছন্দ করা

স্ক্রিনশট 2: ফাংশনটি চালুর পরে

পরে

তথ্যসূত্র


1
এটি ততক্ষণ কাজ করে যতক্ষণ না ডাকা ফাংশনটি কোনও ইমেল প্রেরণের জন্য ব্যবহৃত না হয়। ইমেলগুলি সম্পাদনা শ্রোতার দ্বারা ট্রিগার করা যায় না, তাই বোতাম / কাস্টম মেনু ইস্যুটি সত্যিই সীমাবদ্ধ।
10klines

2
@ 10 ক্লাইনস সেই ক্ষেত্রে, সাধারণ ট্রিগারটি ইনস্টলযোগ্য একটিতে পরিবর্তন করুন onEdit, যা ট্রিগার ইনস্টলকারী ব্যবহারকারীর অনুমোদনের সাথে চলে।

যদি আপনি চান আপনি ছবি বা ডেটা বৈধকরণের পরিবর্তে ফাংশন ট্রিগার করতে চেকবক্সগুলি ব্যবহার করতে পারেন। আমার ট্যাবলেট দিয়ে ইভাল ফাংশনটি কাজ করে না তাই আমি প্রতিটি ফাংশনটির জন্য একগুচ্ছ চেকবাক্স সেট করেছিলাম। আমি সেই অনুযায়ী কোডটি সামঞ্জস্য করেছি এবং সূক্ষ্মভাবে কাজ করি। ইঙ্গিত: আপনার যদি একটি ট্যাবলেট থাকে তবে মেসেজ বক্স ব্যবহার না করে - কোনও কারণে কাজ করে না।
টোবিয়াস সরানো

এটি দুর্দান্ত সমাধান, তবে এটি কার্যকর হচ্ছে না যদি ফাংশনটি এপিআই-তে কল করার জন্য বলা হয় এবং এটি থেকে গুগলের অনুমোদনের জন্য জিজ্ঞাসা করায় এর থেকে প্রতিক্রিয়া পাওয়া যায়। আশেপাশে কোন কাজ?
জেবি

1
@ জেবি ইনস্টলযোগ্য এডিট ট্রিগারটি ব্যবহার করুন
থিমাস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.