دليل البدء السريع للمكتبة

أنشئ مكتبة برمجة تطبيقات يمكنك استخدامها لإزالة الصفوف المكرّرة في بيانات جدول البيانات.

الأهداف

  • أعِدّ النص البرمجي.
  • شغِّل النص البرمجي.

المتطلبات الأساسية

لاستخدام هذا النموذج، ستحتاج إلى المتطلّبات الأساسية التالية:

  • حساب 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. انقر على "حفظ" رمز الحفظ.

  6. في أعلى يمين الصفحة، انقر على مشروع بلا عنوان.

  7. أدخِل اسمًا للنص البرمجي إزالة الصفوف المكرّرة وانقر على إعادة تسمية.

  8. انقر على نشر > نشر جديد.

  9. بجانب اختيار النوع، انقر على "تفعيل أنواع النشر" رمز تفعيل أنواع النشر > المكتبة.

  10. أدخِل وصفًا للمكتبة، مثل إزالة الصفوف المكرّرة. يمكن لأي شخص لديه إمكانية الوصول إلى المكتبة الاطّلاع على هذا الوصف.

  11. انقر على نشر.

  12. على يمين الصفحة، انقر على إعدادات المشروع أيقونة إعدادات المشروع.

  13. ضمن أرقام التعريف، انسخ رقم تعريف النص البرمجي لاستخدامه في خطوة لاحقة.

تشغيل النص البرمجي

لاستخدام مكتبة، يجب أن يكون لديك على الأقل أذونات عرض لمشروع "برمجة تطبيقات Google". منذ إنشاء المكتبة، أصبحت لديك الأذونات المطلوبة لاستخدامها. إذا كنت تريد السماح لمستخدمين آخرين باستخدام المكتبة، يمكنك منحهم الإذن بالاطّلاع على مشروع "برمجة تطبيقات Google".

لاستخدام المكتبة، يُرجى اتّباع الخطوات التالية:

  1. افتح جدول بيانات في "جداول بيانات Google" يحتوي على بيانات بصفوف مكرّرة. لاستخدام نموذج جدول بيانات، أنشئ نسخة من جدول بيانات نماذج الصفوف المكررة.
  2. انقر على الإضافات > برمجة التطبيقات.
  3. إلى جانب المكتبات، انقر على "إضافة مكتبة" .
  4. في القسم رقم تعريف النص البرمجي، الصِق رقم تعريف النص البرمجي من مشروع "برمجة تطبيقات Google" في المكتبة الذي نسخته في القسم السابق.
  5. انقر على بحث.
  6. في قسم الإصدار، اختَر 1.
  7. انقر على إضافة.
  8. احذف أي رمز في أداة تعديل النصوص البرمجية والصقه في ما يلي.

    function runLibrary() {
     Removeduplicaterows.removeDuplicates();
    }
    
  9. في القائمة المنسدلة للدوال، اختَر runLibrary.

  10. انقر على تشغيل.

  11. ارجع إلى جدول البيانات لعرض البيانات المحدّثة دون صفوف مكررة.

مراجعة الرمز

لمراجعة رمز برمجة التطبيقات لهذا الحل، انقر على عرض رمز المصدر أدناه:

عرض رمز المصدر

أولاً، يُجري النص اتصالاً واحدًا لجدول البيانات لاسترداد جميع البيانات. يمكنك اختيار قراءة الورقة صفًا تلو الآخر، ولكن عمليات JavaScript أسرع إلى حدّ كبير من التواصل مع خدمات أخرى مثل "جداول البيانات". كلما قل عدد المكالمات التي تجريها، زادت سرعة سيرها. هذا مهم لأن الحد الأقصى لوقت التشغيل لكل عملية تنفيذ للنص البرمجي هو 6 دقائق.

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

المتغير data هو مصفوفة ثنائية الأبعاد في JavaScript تحتوي على كل القيم في ورقة البيانات. 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;
    }

تعثر العبارة الشرطية أعلاه على تكرارات في كل مرة يحتوي فيها صفان على نفس البيانات في العمودين الأول والثاني من الورقة.

المساهمون

أنشأ هذا النموذج "رومين فيالارد"، وهو خبير في المطوّرين لدى Google. يمكنك متابعة "روماين" على Twitter على @romain_vialard.

تحتفظ Google بهذا النموذج بمساعدة خبراء التطوير في Google.

الخطوات التالية