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

একটি গুগল অ্যাপস স্ক্রিপ্ট লাইব্রেরি তৈরি করুন যা ব্যবহার করে স্প্রেডশীট ডেটা থেকে ডুপ্লিকেট সারিগুলি মুছে ফেলা যাবে।

উদ্দেশ্য

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

পূর্বশর্ত

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

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

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

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

  1. আপনার গুগল অ্যাকাউন্টে সাইন ইন করুন।
  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 (const 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. সংরক্ষণ করুন ক্লিক করুন প্রজেক্টটি সংরক্ষণ করার আইকন .

  6. উপরের বাম দিকে, ‘Untitled project’- এ ক্লিক করুন।

  7. আপনার স্ক্রিপ্টটির নাম দিন “Remove duplicate rows” এবং “Rename”- এ ক্লিক করুন।

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

  9. টাইপ নির্বাচন করার পাশে ডিপ্লয়মেন্ট টাইপ সক্ষম করুন-এ ক্লিক করুন। ডিপ্লয়মেন্ট টাইপগুলি সক্ষম করার জন্য আইকন গ্রন্থাগার

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

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

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

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

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

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

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

  1. এমন একটি গুগল শিটস স্প্রেডশিট খুলুন যাতে ডুপ্লিকেট সারি সহ ডেটা রয়েছে। একটি নমুনা স্প্রেডশিট ব্যবহার করতে, 'Sample duplicate rows spreadsheet'-এর একটি অনুলিপি তৈরি করুন
  2. এক্সটেনশন > অ্যাপস স্ক্রিপ্ট-এ ক্লিক করুন।
  3. Libraries- এর পাশে, a library-তে ক্লিক করুন।
  4. স্ক্রিপ্ট আইডি বিভাগে, পূর্ববর্তী বিভাগে কপি করা লাইব্রেরি অ্যাপস স্ক্রিপ্ট প্রজেক্ট থেকে স্ক্রিপ্ট আইডিটি পেস্ট করুন।
  5. লুক আপ-এ ক্লিক করুন।
  6. ভার্সন সেকশনে, 1 সিলেক্ট করুন।
  7. যোগ করুন ক্লিক করুন।
  8. স্ক্রিপ্ট এডিটর থেকে যেকোনো কোড মুছে ফেলুন এবং নিচের কোডটি পেস্ট করুন।

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

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

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

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

এই সলিউশনের অ্যাপস স্ক্রিপ্ট কোড পর্যালোচনা করতে, 'ভিউ সোর্স কোড'- এ ক্লিক করুন:

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

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

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

data ভেরিয়েবলটি একটি জাভাস্ক্রিপ্ট দ্বি-মাত্রিক অ্যারে, যাতে শীটের সমস্ত মান থাকে। newData একটি খালি অ্যারে, যেখানে স্ক্রিপ্টটি সমস্ত অ-পুনরাবৃত্ত সারিগুলো রাখে।

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

প্রথম for লুপটি data দ্বি-মাত্রিক অ্যারের প্রতিটি সারির উপর দিয়ে চলে। প্রতিটি সারির জন্য, দ্বিতীয় লুপটি পরীক্ষা করে দেখে যে 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

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

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