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

يوضّح المثال التالي كيفية استرداد أسماء المنتجات وأرقامها وتسجيلها.
function logProductInfo() {
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();
for (let i = 0; i < data.length; i++) {
Logger.log('Product name: ' + data[i][0]);
Logger.log('Product number: ' + data[i][1]);
}
}
عرض السجلات
لعرض البيانات التي تم تسجيلها، انقر على سجلّ التنفيذ في أعلى "أداة تعديل النصوص البرمجية".
كتابة البيانات
لتخزين البيانات، مثل اسم منتج جديد ورقمه في جدول البيانات، أضِف الرمز التالي إلى نهاية النص البرمجي.
function addProduct() {
const sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}
يضيف الرمز السابق صفًا جديدًا في أسفل جدول البيانات، مع القيم المحدّدة. إذا شغّلت هذه الدالة، سيتم إضافة صف جديد إلى جدول البيانات.
القوائم وواجهات المستخدم المخصّصة
تخصيص "جداول بيانات Google" من خلال إضافة قوائم ومربّعات حوار وأشرطة جانبية مخصّصة لمعرفة أساسيات إنشاء القوائم، اطّلِع على دليل القوائم. لمعرفة كيفية تخصيص محتوى مربّع حوار، راجِع دليل خدمة HTML.
ربط دالة نص برمجي بصورة أو رسم داخل جدول بيانات، ويتم تنفيذ الدالة عندما ينقر المستخدم على الصورة أو الرسم لمزيد من المعلومات، يُرجى الاطّلاع على الصور والرسومات في "جداول بيانات Google".
إذا كنت تخطّط لنشر واجهة المستخدم المخصّصة كجزء من إضافة، اتّبِع دليل الأسلوب لضمان التوافق مع أسلوب وتنسيق محرر "جداول بيانات Google".
الربط بـ "نماذج Google"
يمكنك ربط "نماذج Google" بـ "جداول بيانات Google" من خلال خدمتَي
النماذج وجداول البيانات. تنشئ هذه الميزة تلقائيًا نموذج Google استنادًا إلى البيانات في جدول بيانات.
تتيح لك خدمة برمجة تطبيقات Google أيضًا استخدام المشغّلات، مثل onFormSubmit، لتنفيذ إجراء معيّن بعد أن يردّ المستخدم على النموذج. لمزيد من المعلومات حول ربط "جداول بيانات Google" بـ "نماذج Google"، يمكنك تجربة دليل البدء السريع الذي يستغرق 5 دقائق بعنوان إدارة الردود في "نماذج Google".
تنسيق البيانات
تحتوي الفئة Range على طرق مثل
setBackground
للوصول إلى تنسيق خلية أو نطاق من الخلايا وتعديله. يوضّح المثال التالي كيفية ضبط نمط الخط لنطاق:
function formatMySpreadsheet() {
// Set the font style of the cells in the range of B2:C2 to be italic.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheets()[0];
const cell = sheet.getRange('B2:C2');
cell.setFontStyle('italic');
}
التحقّق من صحة البيانات
الوصول إلى قواعد التحقّق من صحة البيانات الحالية في "جداول بيانات Google" أو إنشاء قواعد جديدة على سبيل المثال، يوضّح النموذج التالي كيفية ضبط قاعدة للتحقّق من صحة البيانات تسمح فقط بالأرقام بين 1 و100 في إحدى الخلايا.
function validateMySpreadsheet() {
// Set a rule for the cell B4 to be a number between 1 and 100.
const cell = SpreadsheetApp.getActive().getRange('B4');
const 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.
الرسوم البيانية
ضمِّن رسومات بيانية في جدول بيانات تمثّل البيانات في نطاق معيّن. ينشئ المثال التالي رسمًا بيانيًا شريطيًا مضمّنًا، على افتراض أنّ لديك بيانات قابلة للرسم البياني في الخلايا A1:B15:
function newChart() {
// Generate a chart representing the data in the range of A1:B15.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheets()[0];
const 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 دقائق، أو الاطّلاع على الدليل الأكثر تفصيلاً حول الدوال المخصّصة.
وحدات ماكرو
وحدات الماكرو هي طريقة أخرى لتنفيذ رمز برمجة تطبيقات من واجهة مستخدم "جداول بيانات Google". وعلى عكس الدوال المخصّصة، يمكنك تفعيلها باستخدام اختصار لوحة المفاتيح أو من خلال قائمة "جداول بيانات Google". لمزيد من المعلومات، يُرجى الاطّلاع على وحدات ماكرو في "جداول بيانات Google".
إضافات "جداول بيانات Google"
الإضافات هي مشاريع في "برمجة تطبيقات Google" تم تجميعها بشكل خاص، وتعمل داخل "جداول بيانات Google"، ويمكن تثبيتها من متجر إضافات "جداول بيانات Google". إذا طوّرت نصًا برمجيًا لـ "جداول بيانات Google" وأردت مشاركته، تتيح لك "برمجة التطبيقات" نشر النص البرمجي كإضافة ليتمكّن المستخدمون الآخرون من تثبيته.
الأداء والتوسّع
مع زيادة حجم مجموعات البيانات، قد تواجه مشاكل في الأداء. لتحسين جدول البيانات والبرامج النصية، اتّبِع الخطوات التالية:
- اتّباع أفضل الممارسات: يُرجى الاطّلاع على دليل أفضل الممارسات للحصول على نصائح حول تقليل عدد طلبات الخدمة واستخدام العمليات المجمّعة.
- تحسين الصيغ: إذا كان جدول البيانات بطيئًا بسبب الصيغ المعقّدة (مثل
VLOOKUPأوARRAYFORMULAأوIMPORTRANGE)، ننصحك باستخدام "برمجة تطبيقات Google" لإجراء هذه العمليات الحسابية في الذاكرة وإعادة كتابة النتائج على شكل دفعات. - استخدام بدائل لقواعد البيانات: إذا كانت مجموعات البيانات كبيرة جدًا (تقترب من 10 مليون خلية) أو إذا كان إدخال البيانات يتم بشكل متكرر (مثل العديد من النماذج المرتبطة)، ننصحك باستخدام Google Cloud SQL باستخدام JDBC أو BigQuery.
العوامل التي تؤدي إلى الظهور
يمكن للنصوص البرمجية المرتبطة بملف "جداول بيانات Google" استخدام المشغّلات البسيطة، مثل الدالتين onOpen() وonEdit()، للاستجابة تلقائيًا عندما يفتح مستخدم لديه إذن بالتعديل جدول البيانات أو يعدّله.
مثل المشغّلات البسيطة، تتيح المشغّلات القابلة للتثبيت لـ "جداول بيانات Google" تنفيذ دالة تلقائيًا عند وقوع حدث معيّن.
ومع ذلك، توفّر المشغّلات القابلة للتثبيت مرونة أكبر من المشغّلات البسيطة وتتيح الأحداث التالية: الفتح والتعديل والتغيير وإرسال النموذج والأحداث المستندة إلى الوقت (الساعة).