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

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

الأهداف

  • إعداد النص البرمجي
  • تشغيل النص البرمجي

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

لاستخدام هذا النموذج، يجب استيفاء المتطلبات الأساسية التالية:

  • حساب 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 (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. في أعلى يسار الصفحة، انقر على مشروع بدون عنوان.

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

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

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

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

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

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

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

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

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

لاستخدام المكتبة، اتّبِع الخطوات التالية:

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

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

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

  11. عُد إلى جدول البيانات للاطّلاع على البيانات المعدَّلة بدون صفوف مكرّرة.

مراجعة الرمز البرمجي

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

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

أولاً، يُجري النص البرمجي طلبًا واحدًا إلى جدول البيانات لاسترداد جميع البيانات. يمكنك اختيار قراءة ورقة البيانات صفًا بصف، ولكنّ عمليات 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.

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