লাইব্রেরি কুইকস্টার্ট

একটি অ্যাপস স্ক্রিপ্ট লাইব্রেরি তৈরি করুন যা আপনি স্প্রেডশীট ডেটাতে ডুপ্লিকেট সারিগুলি সরাতে ব্যবহার করতে পারেন৷

উদ্দেশ্য

  • স্ক্রিপ্ট সেট আপ করুন।
  • স্ক্রিপ্ট চালান।

পূর্বশর্ত

এই নমুনা ব্যবহার করতে, আপনার নিম্নলিখিত পূর্বশর্ত প্রয়োজন:

  • একটি Google অ্যাকাউন্ট (Google Workspace অ্যাকাউন্টের জন্য অ্যাডমিনিস্ট্রেটরের অনুমোদনের প্রয়োজন হতে পারে)।
  • ইন্টারনেট অ্যাক্সেস সহ একটি ওয়েব ব্রাউজার।

স্ক্রিপ্ট সেট আপ করুন

লাইব্রেরি তৈরি করতে, নিম্নলিখিত পদক্ষেপগুলি নিন:

  1. আপনার Google অ্যাকাউন্টে সাইন ইন করুন।
  2. স্ক্রিপ্ট সম্পাদক খুলতে, script.google.com এ যান।
  3. উপরের বাম দিকে, নতুন প্রকল্পে ক্লিক করুন।
  4. স্ক্রিপ্ট এডিটর থেকে যেকোনো কোড মুছুন এবং নিচের কোডে পেস্ট করুন।

    sheets/removingDuplicates/removingDuplicates.gs
    /**
     * Removes duplicate rows from the current sheet.
     */
    function removeDuplicates() {
      const sheet = SpreadsheetApp.getActiveSheet();
      const data = sheet.getDataRange().getValues();
      const uniqueData = {};
      for (let row of data) {
        const key = row.join();
        uniqueData[key] = uniqueData[key] || row;
      }
      sheet.clearContents();
      const newData = Object.values(uniqueData);
      sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
    }
  5. Save এ ক্লিক করুন সেভ আইকন .

  6. উপরের বাম দিকে, শিরোনামহীন প্রকল্পে ক্লিক করুন।

  7. আপনার স্ক্রিপ্টের নাম দিন ডুপ্লিকেট সারিগুলি সরান এবং পুনঃনামকরণ ক্লিক করুন।

  8. Deploy > New deployment এ ক্লিক করুন।

  9. নির্বাচন প্রকারের পাশে স্থাপনার প্রকারগুলি সক্ষম করুন ক্লিক করুন স্থাপনার ধরন সক্ষম করার জন্য আইকন > লাইব্রেরি

  10. লাইব্রেরির একটি বিবরণ লিখুন, যেমন ডুপ্লিকেট সারি সরান । লাইব্রেরিতে অ্যাক্সেস আছে এমন যে কেউ এই বিবরণ দেখতে পারেন।

  11. ডিপ্লোয় ক্লিক করুন।

  12. বাম দিকে, প্রকল্প সেটিংস ক্লিক করুন প্রকল্প সেটিংসের জন্য আইকন .

  13. আইডির অধীনে, পরবর্তী ধাপে ব্যবহারের জন্য স্ক্রিপ্ট আইডি কপি করুন।

স্ক্রিপ্ট চালান

একটি লাইব্রেরি ব্যবহার করতে, আপনার অ্যাপস স্ক্রিপ্ট প্রকল্পের জন্য কমপক্ষে দেখার অনুমতি থাকতে হবে। যেহেতু আপনি লাইব্রেরি তৈরি করেছেন, আপনার কাছে এটি ব্যবহার করার প্রয়োজনীয় অনুমতি রয়েছে৷ আপনি যদি অন্যদের লাইব্রেরি ব্যবহার করতে দিতে চান, তাহলে তাদের Apps Script প্রকল্পের জন্য দেখার অনুমতি দিন।

লাইব্রেরি ব্যবহার করতে, নিম্নলিখিত পদক্ষেপগুলি নিন:

  1. একটি Google পত্রক স্প্রেডশীট খুলুন যাতে ডুপ্লিকেট সারি সহ ডেটা রয়েছে৷ একটি নমুনা স্প্রেডশীট ব্যবহার করতে, নমুনা ডুপ্লিকেট সারি স্প্রেডশীটের একটি অনুলিপি তৈরি করুন
  2. এক্সটেনশন > অ্যাপস স্ক্রিপ্টে ক্লিক করুন।
  3. লাইব্রেরির পাশে, একটি লাইব্রেরি করুন ক্লিক করুন।
  4. স্ক্রিপ্ট আইডি বিভাগে, লাইব্রেরি অ্যাপস স্ক্রিপ্ট প্রকল্প থেকে স্ক্রিপ্ট আইডি পেস্ট করুন যা আপনি পূর্ববর্তী বিভাগে অনুলিপি করেছেন।
  5. দেখুন ক্লিক করুন.
  6. সংস্করণ বিভাগে, 1 নির্বাচন করুন।
  7. যোগ করুন ক্লিক করুন.
  8. স্ক্রিপ্ট এডিটর থেকে যেকোনো কোড মুছুন এবং নিচের কোডে পেস্ট করুন।

    function runLibrary() {
     Removeduplicaterows.removeDuplicates();
    }
    
  9. ফাংশন ড্রপডাউনে, runLibrary নির্বাচন করুন।

  10. রান এ ক্লিক করুন।

  11. ডুপ্লিকেট সারি ছাড়া আপডেট করা ডেটা দেখতে স্প্রেডশীটে ফিরে যান।

কোড পর্যালোচনা করুন

এই সমাধানের জন্য অ্যাপস স্ক্রিপ্ট কোড পর্যালোচনা করতে, নীচের উৎস কোড দেখুন ক্লিক করুন:

সোর্স কোড দেখুন

প্রথমত, স্ক্রিপ্টটি সমস্ত ডেটা পুনরুদ্ধার করতে স্প্রেডশীটে একক কল করে। আপনি সারি অনুসারে শীট সারি পড়তে বেছে নিতে পারেন, তবে জাভাস্ক্রিপ্ট অপারেশনগুলি স্প্রেডশীটের মতো অন্যান্য পরিষেবাগুলির সাথে কথা বলার চেয়ে যথেষ্ট দ্রুত। আপনি যত কম কল করবেন, তত দ্রুত যাবে। এটি গুরুত্বপূর্ণ কারণ প্রতিটি স্ক্রিপ্ট এক্সিকিউশনের সর্বোচ্চ রান টাইম 6 মিনিট।

sheets/removingDuplicates/removingDuplicates.gs
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();

ভেরিয়েবল data হল একটি জাভাস্ক্রিপ্ট 2-ডাইমেনশনাল অ্যারে যা শীটের সমস্ত মান ধারণ করে। newData হল একটি খালি অ্যারে যেখানে স্ক্রিপ্ট সমস্ত নন-ডুপ্লিকেট সারি রাখে।

sheets/removingDuplicates/removingDuplicates.gs
const newData = Object.values(uniqueData);

লুপের for প্রথমটি data 2-ডাইমেনশনাল অ্যারের প্রতিটি সারির উপর পুনরাবৃত্তি করে। প্রতিটি সারির জন্য, দ্বিতীয় লুপ পরীক্ষা করে যে newData অ্যারেতে মিলিত ডেটা সহ অন্য সারি ইতিমধ্যেই বিদ্যমান আছে কিনা। যদি এটি একটি সদৃশ না হয়, সারিটি newData অ্যারেতে ঠেলে দেওয়া হয়।

sheets/removingDuplicates/removingDuplicates.gs
uniqueData[key] = uniqueData[key] || row;

অবশেষে, স্ক্রিপ্টটি শীটের বিদ্যমান বিষয়বস্তু মুছে দেয় এবং newData অ্যারের বিষয়বস্তু সন্নিবেশ করায়।

sheets/removingDuplicates/removingDuplicates.gs
sheet.clearContents();
const newData = Object.values(uniqueData);
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);

পরিবর্তন

আপনি আপনার প্রয়োজন অনুসারে লাইব্রেরি সম্পাদনা করতে পারেন। নীচে একটি ঐচ্ছিক পরিবর্তন আছে.

কিছু কলামে মিলে যাওয়া ডেটা সহ সারিগুলি সরান৷

সম্পূর্ণভাবে মেলে এমন সারিগুলি সরানোর পরিবর্তে, আপনি কেবলমাত্র এক বা দুটি কলামে মিলে যাওয়া ডেটা সহ সারিগুলি সরাতে চাইতে পারেন৷ এটি করতে, আপনি শর্তসাপেক্ষ বিবৃতি পরিবর্তন করতে পারেন।

নমুনা কোডে, নিম্নলিখিত লাইন আপডেট করুন:

    if(row.join() == newData[j].join()){
      duplicate = true;
    }

নিম্নলিখিত কোড দিয়ে লাইন প্রতিস্থাপন করুন:

    if(row[0] == newData[j][0] && row[1] == newData[j][1]){
      duplicate = true;
    }

উপরের শর্তসাপেক্ষ বিবৃতিটি প্রতিবার শীটের প্রথম এবং দ্বিতীয় কলামে দুটি সারিতে একই ডেটা থাকলে ডুপ্লিকেট খুঁজে পায়।

অবদানকারী

এই নমুনাটি তৈরি করেছেন রোমেন ভিয়ালার্ড, একজন গুগল ডেভেলপার বিশেষজ্ঞ। টুইটারে রোমেনকে অনুসরণ করুন @romain_vialard

এই নমুনা Google ডেভেলপার বিশেষজ্ঞদের সাহায্যে Google দ্বারা রক্ষণাবেক্ষণ করা হয়।

পরবর্তী পদক্ষেপ