توسيع جداول بيانات Google

تتيح لك خدمة Google Apps Script تنفيذ إجراءات جديدة ومفيدة باستخدام "جداول بيانات Google". يمكنك استخدام Apps Script لإضافة قوائم مخصّصة، ومربّعات حوار وأشرطة جانبية إلى "جداول بيانات Google". ويتيح لك أيضًا كتابة وظائف مخصّصة ل "جداول بيانات Google"، بالإضافة إلى دمج "جداول بيانات Google" مع خدمات Google الأخرى، مثل "تقويم Google" وDrive وGmail.

تتعامل معظم النصوص البرمجية المصمّمة لـ "جداول بيانات Google" مع الصفائف بهدف التفاعل مع الخلايا والصفوف والأعمدة في جدول البيانات. إذا لم تكن على دراية بالصفائف في JavaScript، يقدّم لك Codecademy وحدة تدريب رائعة للصفائف. (ملاحظة: لم تطوّر Google هذه الدورة التدريبية وهي غير مرتبطة بها).

للحصول على مقدمة سريعة حول استخدام Apps Script مع "جداول بيانات Google"، يمكنك الاطّلاع على دليل البدء السريع الذي يستغرق 5 دقائق بشأن وحدات الماكرو والقوائم والدوالّ المخصّصة.

البدء

تتضمّن Apps Script واجهات برمجة تطبيقات خاصة تتيح لك إنشاء "جداول بيانات Google" وقراءتها و تعديلها آليًا. يمكن أن تتفاعل "برمجة التطبيقات" مع "جداول بيانات Google" بطريقتين عامتين: يمكن لأي نص برمجي إنشاء جدول بيانات أو تعديله إذا كان مستخدم النص البرمجي لديه الأذونات المناسبة لجدول البيانات، ويمكن أيضًا ربط النص البرمجي بجدول بيانات، ما يمنح النص البرمجي إمكانات خاصة لتغيير واجهة المستخدم أو الاستجابة عند فتح جدول البيانات. لإنشاء نص برمجي مرتبط، اختَر الإضافات > برمجة تطبيقات Google من داخل جداول بيانات Google.

تتعامل خدمة جداول البيانات مع Google Sheets كشبكة، وتعمل مع صفائف ثنائية الأبعاد. لاسترداد البيانات من جدول البيانات، يجب الوصول إلى جدول البيانات الذي يتم فيه تخزين البيانات، والحصول على النطاق في جدول البيانات الذي يحتوي على البيانات، ثم الحصول على قيم الخلايا. تسهِّل Apps Script الوصول إلى البيانات من خلال قراءة البيانات المنظَّمة في جدول البيانات وإنشاء عناصر JavaScript لها.

قراءة البيانات

افترض أن لديك قائمة بأسماء المنتجات وأرقام المنتجات التي تخزنها في جدول بيانات، كما هو موضح في الصورة أدناه.

يوضح المثال أدناه كيفية استرداد وتسجيل أسماء المنتجات وأرقامها.

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

عرض السجلات

للاطّلاع على البيانات التي تم تسجيلها، انقر على سجلّ التنفيذ في أعلى محرِّر النصوص البرمجية.

كتابة البيانات

لتخزين البيانات، مثل اسم منتج جديد ورقمه في جدول البيانات، أضِف الرمز البرمجي التالي إلى نهاية النص البرمجي.

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

تُلحِق التعليمة البرمجية أعلاه صفًا جديدًا في أسفل جدول البيانات، مع القيم المحدّدة. إذا قمت بتشغيل هذه الدالة، سترى صفًا جديدًا مضافًا إلى جدول البيانات.

القوائم المخصّصة وواجهات المستخدم

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

يمكنك أيضًا إرفاق دالة نصية بصورة أو رسم ضمن جدول ข้อมูล، وسيتم تنفيذ الدالة عندما ينقر المستخدم على الصورة أو الرسم. لمزيد من المعلومات، اطّلِع على مقالة الصور والرسومات في "جداول بيانات Google".

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

الربط بخدمة "نماذج Google"

تتيح لك أداة "برمجة التطبيقات من Google" ربط "نماذج Google" بـ "جداول بيانات Google" من خلال خدمات نماذج Google و جداول بيانات Google. يمكن أن تؤدي هذه الميزة إلى إنشاء نموذج "نماذج Google" تلقائيًا استنادًا إلى البيانات في جدول بيانات. تتيح لك Apps Script أيضًا استخدام العوامل المشغِّلة، مثل onFormSubmit لتنفيذ إجراء معيّن بعد أن يردّ المستخدم على النموذج. للاطّلاع على مزيد من المعلومات عن ربط "جداول بيانات Google" بخدمة "نماذج Google"، يمكنك تجربة الدليل المفصّل الذي يستغرق 5 دقائق حول إدارة الردود في "نماذج Google".

التنسيق

تحتوي فئة Range على طرق مثل setBackground(color) للوصول إلى تنسيق خلية أو نطاق خلايا وتعديله. يوضّح المثال التالي كيفية ضبط نمط الخط لنطاق:

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

التحقّق من صحة البيانات

يتيح لك Apps Script الوصول إلى قواعد التحقّق من صحة البيانات الحالية في "جداول بيانات Google" أو إنشاء قواعد جديدة. على سبيل المثال، يوضّح العيّنة التالية كيفية ضبط قاعدة التحقّق من البيانات التي تسمح فقط بأرقام تتراوح بين 1 و100 في خلية.

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

لمزيد من التفاصيل حول التعامل مع قواعد التحقّق من صحة البيانات، اطّلِع على مقالتَي SpreadsheetApp.newDataValidation() وDataValidationBuilder وRange.setDataValidation(rule).

قوائم أغانٍ رائجة

تتيح لك أداة Apps Script تضمين الرسوم البيانية في جدول بيانات يمثّل البيانات في نطاق معيّن. ينشئ المثال التالي مخطّطًا شريطيًا مضمّنًا، بافتراض أنّه لديك بيانات قابلة للتمثيل في الخلايا A1:B15:

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

لمزيد من المعلومات عن تضمين رسم بياني في جدول البيانات، اطّلِع على EmbeddedChart و أداة إنشاء الرسوم البيانية المحدّدة، مثل EmbeddedPieChartBuilder.

الدوال المخصّصة في "جداول بيانات Google"

تشبه الدالة المخصّصة دالة جدول البيانات المضمنة مثل =SUM(A1:A5)، إلا أنك تحدد سلوك الدوال باستخدام "برمجة تطبيقات Google". على سبيل المثال، يمكنك إنشاء دالة مخصصة، in2mm()، تحوّل قيمة من بوصة إلى مليمتر، ثم تستخدم الصيغة في جدول البيانات عن طريق كتابة =in2mm(A1) أو =in2mm(10) في خلية.

للتعرّف على مزيد من المعلومات عن الدوالّ المخصّصة، يمكنك تجربة الدليل المفصّل المخصّص للمبتدئين في برمجة التطبيقات والذي يستغرق 5 دقائق ويتناول القوائم والدوالّ المخصّصة، أو يمكنك الاطّلاع على الدليل المفصّل عن الدوالّ المخصّصة.

وحدات ماكرو

وحدات الماكرو هي طريقة أخرى لتنفيذ رمز Apps Script من واجهة مستخدم "جداول بيانات Google". على عكس الدوال المخصّصة، يتم تفعيلها باستخدام اختصار لوحة مفاتيح أو من خلال قائمة "جداول بيانات Google". لمزيد من المعلومات، يُرجى الاطّلاع على وحدات الماكرو في "جداول بيانات Google".

إضافات في "جداول بيانات Google"

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

العوامل التي تؤدي إلى الظهور

يمكن للنصوص البرمجية المرتبطة بملف "جداول بيانات Google" استخدام عوامل تشغيل بسيطة مثل الدالتَين onOpen() وonEdit() للردّ تلقائيًا عندما يفتح مستخدم لديه إذن تعديل الوصول إلى جدول البيانات جدول البيانات أو يعدّله.

مثل عوامل التشغيل البسيطة، تسمح عوامل التشغيل القابلة للتثبيت لبرنامج "جداول بيانات Google" بتنفيذ دالة تلقائيًا عند حدوث حدث معيّن. ومع ذلك، توفّر عوامل التفعيل القابلة للتركيب مرونة أكبر من عوامل التفعيل البسيطة وتتوافق مع الأحداث التالية: الفتح والتعديل والتغيير وإرسال النموذج والأحداث المستندة إلى الوقت (الساعة).