مرحبًا بك في المقال الثاني من دليل تعلم أساسيات برمجة التطبيقات باستخدام جداول بيانات جوجل، ففي المقال السابق ركزنا على مفاهيم محرر السكربت ووحدات الماكرو والدوال المخصصة، أما في هذا الدرس سوف نتعمق في خدمة جداول البيانات التي يمكنك استخدامها لقراءة البيانات وكتابتها ومعالجتها في جداول بيانات Google.
هذا هو الدرس الثاني في دليل تعلم أساسيات برمجة التطبيقات مع جداول بيانات جوجل، وقبل البدء تأكد من إكمال المقال الأول: وحدات الماكرو والدوال المخصصة.
ماذا ستتعلم
- كيف تُمَثَّل جداول البيانات والأوراق والنطاقات في برمجة التطبيقات Apps Script.
-
كيفية الوصول إلى جدول البيانات النشط (المفتوح) وإنشائه وإعادة تسميته باستخدام صنف
SpreadsheetApp
وSpreadsheet
. -
كيفية تغيير اسم الورقة، واتجاه العمود/ الصف للنطاق باستخدام صنف
Sheet
. -
كيفية تحديد مجموعة من الخلايا أو نطاق من البيانات وتنشيطها ونقلها وفرزها باستخدام صنف
Range
.
ماذا ستحتاج
- فهم موضوعات Apps Script الأساسية التي استكشفناها في الدرس السابق من هذا الدليل.
- الإلمام الأساسي بمحرر السكربت Apps Script.
- الإلمام الأساسي بجداول بيانات Google.
-
الإلمام الأساسي بلغة البرمجة JavaScript وصنف
String
الخاص به.
ما هي خدمة جداول البيانات؟
خدمة جداول البيانات تشتمل على أربع أصناف أساسية، هي: SpreadsheetApp
، و Spreadsheet
، و Sheet
، و Range
، ويصف هذا القسم من المقال هذه الأصناف وفيم تُستخدم من أجله.
الصنف SpreadsheetApp
قبل الخوض في الأصناف Spreadsheet
، و Sheet
، و Range
يجب عليك مراجعة الصنف الأب SpreadsheetApp
، فتبدأ العديد من السكربتات باستدعاء توابع الصنف SpreadsheetApp
، إذ يمكنها توفير نقطة الوصول الأولية إلى ملفات Google Sheets، فيمكنك التفكير في SpreadsheetApp
باعتباره الصنف الرئيسي لخدمة جداول البيانات، بالطبع لن نستكشف صنفSpreadsheetApp
بالتفصيل هنا، ومع ذلك يمكنك العثور لاحقًا في هذا الدرس على أمثلة وتمارين لمساعدتك على فهم هذا الصنف.
جداول البيانات والأوراق وأصنافهما
جداول البيانات Spreadsheet: كمصطلح فإن جدول البيانات هو عبارة عن ملف جداول بيانات Google مخزن في Google Drive يحتوي على بيانات منظمة حسب الصفوف والأعمدة، ويشار إلى جدول البيانات أحيانًا باسم "جدول بيانات Google"، وهي الطريقة نفسها التي يُشار بها إلى المستند باسم "مستند Google".
ويمكنك استخدام الصنف Spreadsheet
للوصول إلى بيانات ملف جداول بيانات جوجل وتعديلها، ويمكنك أيضًا استخدام هذا الصنف لعمليات أخرى على مستوى الملف، مثل: إضافة العناوين.
الورقة Sheet: تمثل الصفحة الفردية لجدول البيانات، ويشار إليها أحيانًا باسم "علامة تبويب"، ويمكن أن يحتوي كل جدول بيانات على ورقة واحدة أو أكثر.
ويمكنك استخدام الصنف Sheet
للوصول إلى البيانات والإعدادات على مستوى الورقة وتعديلها، مثل: نقل صفوف أو أعمدة البيانات.
بالإضافة إلى الاسم، تحتوي جداول البيانات أيضًا على معرّف نصي (سلسلة نصية عشوائية فريدة)، هذا المعرّف موجود في عنوان URL لجدول البيانات، كما تحتوي كل ورقة في جدول البيانات أيضًا على معرّف رقمي (سلسلة رقمية عشوائية فريدة) لتلك الورقة، هذا المعرّف موجود في عنوان URL لجدول البيانات، وتنسيق المعرفين كالتالي:
ويمكنك رؤية كلا المعرفين في مثال URL التالي:
https://docs.google.com/spreadsheets/d/1xW0pLog0mQFVU5QCob1AHPxR7WEt1/edit#gid=3614239
لذلك، نظرًا لأن معرفات جداول البيانات والأوراق فريدة وأسماء جداول البيانات ليست كذلك، فمن الأفضل استخدام المعرفات لتحديد جداول البيانات والأوراق كلما أمكن ذلك، فعلى سبيل المثال: يمكن أن يكون لديك جداول بيانات متعددة بنفس الاسم في Google Drive، لكن باستخدام التابع (SpreadsheetApp.openById(id
لفتح جداول البيانات الخاصة بك يمكنك من تجنب تحرير الملف الخطأ عن طريق الخطأ إن استعملت التابع getSheetByName(sheet_name)
.
باختصار، يعمل الصنف Spreadsheet
على مجموعة الأوراق وتحديد ملف جداول بيانات جوجل في Google Drive، ويعمل الصنف Sheet
على أوراق فردية داخل جدول بيانات.
الصنف Range
تتطلب معظم عمليات معالجة البيانات (على سبيل المثال: قراءة بيانات الخلية أو كتابتها أو تنسيقها) تحديد الخلايا التي تنطبق عليها العملية، لذلك يمكنك استخدام الصنف Range
لتحديد مجموعات معينة من الخلايا داخل الورقة، ويمكنك تحديد النطاقات حسب أرقام الصفوف والأعمدة ، أو باستخدام تدوين A1.
اقتباستوضيح: المصطلحات الأساسية في Apps Script مصطلح "الورقة النشطة active sheet" هي الورقة المفتوحة والمرئية حاليًا في واجهة جداول بيانات جوجل، وبالمثل فإن مصطلح "النطاق النشط active range" هو مجموعة مكونة من خلية واحدة أو أكثر مظللة حاليًا داخل الورقة النشطة، ومصطلح "الخلية النشطة active cell" هي الخلية الوحيدة المميزة داخل الورقة النشطة مع تركيز المؤشر.
تعمل العديد من توابع الأصناف على إرجاع الكائن النشط للصنف المطلوب، فعلى سبيل المثال: يؤدي تشغيل ()SpreadsheetApp.getActiveSpreadsheet
إلى إرجاع جدول البيانات النشط أو الحالي للمستخدم، وبالحصول على جدول البيانات النشط يمكنك تطبيق العمليات على جدول البيانات هذا، وبالمثل يمكن لتابع مثل ()Sheet.activate
تغيير الكائن النشط.
باختصار، تنشيط ورقة أو نطاق أو خلية يعادل النقر فوق تلك الورقة أو النطاق أو الخلية في واجهة جداول بيانات جوجل، وبالتالي نقل تركيز المؤشر إلى هذا الموقع.
يعرض باقي هذا الدرس أمثلة على السكربتات التي تعمل مع هذه الأصناف وتوابعها.
الإعداد للعمل
قبل المتابعة أنت بحاجة إلى جدول بيانات يحتوي على بعض البيانات، لا تقلق فقد وفرنا لك جدول بيانات جاهز حول أسعار الأفوكادو يمكنك تنزيله، ثم إعادة رفعه بإحدى الطريقتين اللتين ذكرناها في المقال الأول من هذه السلسلة.
اقتباسللتذكير: يمكنك فتح محرر السكربت من جداول بيانات جوجل بالنقر على "الإضافات" ثم اختيار "برمجة تطبيقات جوجل"، وعند فتح مشروع Apps Script في محرر السكربت لأول مرة، ينشئ محرر السكربت مشروعًا نصيًا وملفًا نصيًا لك.
يوضح لك القسم التالي من هذا المقال كيفية استخدام الصنف Spreadsheet
لتحسين جدول البيانات الذي نتدرب عليه.
الوصول إلى جداول البيانات وتعديلها
في هذا القسم يمكنك التعرف على كيفية استخدام الصنف SpreadsheetApp
والصنف Spreadsheet
للوصول إلى جداول البيانات وتعديلها، وعلى وجه التحديد تعلمك هذه التمارين كيفية إعادة تسمية جدول بيانات وتكرار الأوراق داخل جدول بيانات.
نعم قد تبدو هذه العمليات بسيطة، لكنها غالبًا ما تكون جزءًا من سير عمل أكبر وأكثر تعقيدًا، فبمجرد أن تفهم كيفية أتمتة هذه المهام باستخدام نص الشيفرة البرمجية أو السكربت، سيكون من الأسهل تعلم كيفية أتمتة العمليات الأكثر تفصيلًا.
إعادة تسمية جدول البيانات النشط
لنفترض أنك تريد تغيير الاسم الافتراضي لجدول البيانات الذي نتدرب عليه من "نسخة من جدول بيانات بدون عنوان" إلى عنوان يعكس بطريقة أفضل الغرض من جدول البيانات هذا، ويمكنك عمل بذلك باستخدام الصنف SpreadsheetApp
والصنف Spreadsheet
باتباع الخطوات التالية:
أولاً، في محرر السكربت استبدل كتلة التعليمات البرمجية الافتراضية ()myFunction
بالتعليمة البرمجية التالية:
function renameSpreadsheet() { var mySS = SpreadsheetApp.getActiveSpreadsheet(); mySS.rename("أسعار الأفوكادو"); }
ثانيًا، احفظ شيفرتك البرمجية بالنقر على أيقونة "حفظ". ثالثًا، لإعادة تسمية مشروع Apps Script انقر على كلمة "مشروع بلا عنوان" من أعلى يمين النافذة، ثم اكتب اسم "Avocado Prices" كاسم للمشروع الجديد، ثم انقر على "إعادة تسمية".
رابعًا، لتشغيل شيفرتك البرمجية، حدد الدالة renameSpreadsheet
من قائمة الدوال، ثم انقر على زر "تنفيذ" من أعلى النافذة.
خامسًا: أعطِ تفويضًا للماكرو باتباع الإرشادات التي تظهر على الشاشة، انقر أولاً على زر "مراجعة الأذونات".
فإذا تلقيت رسالة "لم تثبت جوجل ملكية هذا التطبيق"، فانقر على ارتباط "خيارات متقدمة"، ثم انقر على ارتباط "الانتقال إلى Avocado Prices (غير آمنة)".
وفي الشاشة التالية انقر على زر "سماح".
اقتباستنويه: تستخدم جوجل إجراء الأمان هذا لتنبيه المستخدمين من استعمال أي ماكرو قد يكون غير آمن أو من دون إذنهم، فإذا رأيت مربع الحوار هذا فلا بأس بالمتابعة لأنك مؤلف الشيفرة البرمجية، فقط اتبع التعليمات التي تظهر على النافذة لمتابعة مصادقة الشيفرة البرمجية.
سادسًا، بمجرد تنفيذ الدالة يجب أن يتغير اسم ملف جدول البيانات الخاص بك.
لنلق نظرة على الشيفرة البرمجية التي أدخلتها: التابع ()getActiveSpreadsheet
يعمل على إرجاع كائن يمثل جدول البيانات النشط؛ أي نسخة من جدول بيانات التمرين، وخزن كائن جدول البيانات هذا في المتغير mySS
ويؤدي استدعاء (rename(newName
في المتغير mySS
إلى تغيير اسم ملف جدول البيانات في Google Drive إلى "أسعار الأفوكادو".
ونظرًا لأن متغير mySS
أصبح مرجعًا لجدول البيانات النشط، يمكنك جعل شيفرتك البرمجية أنظف وأكثر كفاءة عن طريق استدعاء توابع Spreadsheet
من خلال المتغير mySS
بدلًا من تكرار استدعاء ()getActiveSpreadsheet
.
تكرار الورقة النشطة
في جدول البيانات الحالي لديك ورقة واحدة فقط، يمكنك استدعاء التابع ()Spreadsheet.duplicateActiveSheet
لعمل نسخة من هذه الورقة باتباع الخطوات التالية:
بداية، أضف الدالة الجديدة التالية أسفل الدالة ()renameSpreadsheet
الموجودة بالفعل في مشروع Apps Script الذي أنشأته كالتالي:
function duplicateAndOrganizeActiveSheet() { var mySS = SpreadsheetApp.getActiveSpreadsheet(); var duplicateSheet = mySS.duplicateActiveSheet(); }
احفظ شيفرتك البرمجية بالنقر على أيقونة "حفظ"، بعد ذلك، ومن أجل تشغيل شيفرتك البرمجية، عليك أن تحدد الدالة duplicateAndOrganizeActiveSheet
من قائمة الدوال، ثم النقر على زر "تنفيذ" من أعلى النافذة.
ارجع إلى جداول البيانات لمشاهدة إضافة علامة تبويب جديدة أو ورقة مكررة باسم "نسخة من الورقة1" إلى جدول البيانات.
لنلق نظرة على الشيفرة البرمجية التي أدخلتها: في هذه الدالة الجديدة يُنشئ التابع ()duplicateActiveSheet
ورقة مكررة وينشطها ثم يعيدها إلى جدول البيانات، وتُخزن هذه الورقة الناتجة في المتغير duplicateSheet
، لكن الشيفرة البرمجية لم تفعل أي شيء مع هذا المتغير حتى الآن.
في القسم التالي من هذا المقال، ستستخدم الصنف Sheet
لإعادة تسمية وتنسيق الورقة التي كررناها.
تنسيق الورقة باستخدام الصنف Sheet
يوفر الصنف Sheet
توابع تسمح لنَصْ الشيفرة البرمجية بقراءة الأوراق وتحديثها، في هذا القسم من الدرس يمكنك التعرف على كيفية تغيير اسم الورقة وعرض العمود باستخدام توابع من الصنف Sheet
.
لاحظ أن الصنف Spreadsheet
والصنف Sheet
يشتركان في عدة توابع خاصة بورقة محددة، مثل:
-
(Spreadsheet.deleteColumn(columnPosition
-
(Sheet.deleteColumn(columnPosition
فعندما تستدعي (Spreadsheet.deleteColumn(columnPosition
فإن هذا التابع يزيل الأعمدة المحددة من الورقة النشطة حاليًا (المفتوحة) داخل جدول البيانات النشط.
ويمكنك الحصول على نفس النتيجة عن طريق استدعاء ()getActiveSheet
، ومن ثمة بعد ذلك استدعاء (Sheet.deleteColumn(columnPosition
، لكن الصنف Spreadsheet
يوفر لك الوقت.
تغيير اسم الورقة
إعادة تسمية الأوراق أمر بسيط مثل إعادة تسمية جدول البيانات التي استخدمنا فيها التابع ()renameSpreadsheet
، فكل ما عليك فعله هو استدعاء تابع واحد لتنفيذ هذه العملية كما يلي:
أولًا، في جداول البيانات الذي نتدرب عليه باسم "أسعار الأفوكادو" انقر على التبويبة أو الورقة التي باسم "الورقة1" لتنشيطها.
ثانيًا، في محرر Apps Script عَدِّل الشيفرة البرمجية للدالة ()duplicateAndOrganizeActiveSheet
لكي تتطابق ما يلي:
function duplicateAndOrganizeActiveSheet() { var mySS = SpreadsheetApp.getActiveSpreadsheet(); var duplicateSheet = mySS.duplicateActiveSheet(); // تغيير اسم الورقة الجديدة. duplicateSheet.setName("_الورقة" + duplicateSheet.getSheetId()); }
ثالثًا، احفظ الشيفرة البرمجية الخاصة بك بالنقر على أيقونة "حفظ"، ثم انقر على زر "تنفيذ" من أعلى النافذة.
رابعًا، ارجع إلى جداول البيانات لمشاهدة إضافة علامة تبويب جديدة أو ورقة مكررة وإعادة تسميتها وتنشيطها عند تشغيل الدالة:
لنلق نظرة على الشيفرة البرمجية التي أدخلتها: يعمل التابع (setName(name
على تغيير اسم الورقة المكررة باستخدام التابع ()getSheetID
وذلك للحصول على رقم المعرف الفريد لهذه الورقة، ثم يربط عامل التشغيل (+) المعرف الرقمي للورقة بنهاية السلسلة النصية التي حددناها لاسم الورقة المكررة وهي "الورقة_".
تعديل أعمدة وصفوف الورقة
يمكنك أيضًا استخدام الصنف Sheet
لتنسيق جدول البيانات، فعلى سبيل المثال: يمكنك تحديث وظيفة التابع ()duplicateAndOrganizeActiveSheet
لتغيير حجم أعمدة الورقة المكررة وإضافة صفوف مجمدة كما يلي:
في جداول البيانات الذي نتدرب عليه باسم "أسعار الأفوكادو" انقر على التبويبة أو الورقة التي باسم "الورقة1" لتنشيطها ثم عدِّل في محرر Apps Script الشيفرة البرمجية للدالة ()duplicateAndOrganizeActiveSheet
لكي تتطابق ما يلي:
function duplicateAndOrganizeActiveSheet() { var mySS = SpreadsheetApp.getActiveSpreadsheet(); var duplicateSheet = mySS.duplicateActiveSheet(); // تغيير اسم الورقة الجديدة. duplicateSheet.setName("_الورقة" + duplicateSheet.getSheetId()); // تنسيق الورقة الجديدة. duplicateSheet.autoResizeColumns(1, 5); duplicateSheet.setFrozenRows(2); }
احفظ الشيفرة البرمجية الخاصة بك بالنقر على أيقونة "حفظ"، ثم انقر على زر "تنفيذ" من أعلى النافذة.
بعدها، ارجع إلى جداول البيانات لمشاهدة إضافة علامة تبويب جديدة أو ورقة مكررة وإعادة تسميتها وتنشيطها وتنسيقها عند تشغيل الدالة.
لنلق نظرة على الشيفرة البرمجية التي أدخلتها:
autoResizeColumns(startColumn, numColumns)
يعمل هذا التابع على تغيير حجم أعمدة الورقة لسهولة القراءة، كما يعمل التابع (setFrozenRows(rows
على تجميد العدد المحدد من الصفوف (اثنان في المثال الذي معنا) مما يُبقي صفوف الرأس مرئية أثناء قيام القارئ بالتمرير لأسفل في جدول البيانات.
اقتباسملاحظة: عند العمل مع المصفوفات في Apps Script فإنك تتبع الاصطلاح القائل بأن القائمة تبدأ من الفهرس "0"، ولكن عند العمل مع الصفوف والأعمدة يبدأ الفهرس عند الرقم "1"، ويتماشى هذا المنطق مع تنسيق جدول البيانات التقليدي إذ تبدأ من الصف "1" والعمود "A" في جداول البيانات، لذلك ضع في اعتبارك هذا الأمر عند استخدام التوابع المتعلقة بالأعمدة والصفوف، مثل التابع
()autoResizeColumns
، ففي تمريننا الحالي أدخلنا القيمة "1" وليس القيمة "0" كمعامل للإشارة إلى العمود "A" داخل الصنفduplicateSheet
.
في القسم التالي سوف تتعرف على النطاقات ومعالجة البيانات الأساسية.
إعادة ترتيب البيانات باستخدام الصنف Range
يوفر الصنف Range
وتوابعه معظم خيارات معالجة البيانات وتنسيقها في خدمة جداول البيانات، لذلك سوف نقدم في هذا القسم من الدرس معالجة البيانات الأساسية باستخدام النطاقات، إذ ستركز هذه التمارين على كيفية استخدام النطاقات في Apps Script.
وسوف نتعمق خلال الدروس القادمة من هذا الدليل في معالجة البيانات وتنسيقها.
نطاقات النقل
يمكنك تنشيط نطاقات البيانات ونقلها باستخدام توابع الأصناف بالإضافة إلى التدوين أو التأشير A1، وهو اختصار لتحديد مجموعات معينة من الخلايا داخل جداول البيانات، فإذا كنت بحاجة إلى التعرف عليها بنفسك يمكنك التحقق من هذا الوصف لترميز A1.
دعنا نعمل على تحديث التابع ()duplicateAndOrganizeActiveSheet
لنقل بعض البيانات داخل الجدول الذي نتدرب عليه كما يلي:
في جداول البيانات الذي نتدرب عليه باسم "أسعار الأفوكادو" انقر على التبويبة أو الورقة التي باسم "الورقة1" لتنشيطها ثم عدِّل في محرر Apps Script الشيفرة البرمجية للدالة ()duplicateAndOrganizeActiveSheet
لكي تتطابق ما يلي:
function duplicateAndOrganizeActiveSheet() { var mySS = SpreadsheetApp.getActiveSpreadsheet(); var duplicateSheet = mySS.duplicateActiveSheet(); // تغيير اسم الورقة الجديدة. duplicateSheet.setName("_الورقة" + duplicateSheet.getSheetId()); // تنسيق الورقة الجديدة. duplicateSheet.autoResizeColumns(1, 5); duplicateSheet.setFrozenRows(2); نقل العمود F إلى العمود C // var myRange = duplicateSheet.getRange("F2:F"); myRange.moveTo(duplicateSheet.getRange("C2")); }
احفظ الشيفرة البرمجية الخاصة بك بالنقر على أيقونة "حفظ"، ثم انقر على زر "تنفيذ" من أعلى النافذة.
بعدها، ارجع إلى جداول البيانات لمشاهدة إضافة علامة تبويب جديدة أو ورقة مكررة وإعادة تسميتها وتنشيطها وتنسيقها ونقل محتويات العمود "F" إلى العمود "C" عند تشغيل الدالة.
لنلق نظرة على الشيفرة البرمجية التي أدخلتها: يعمل التابع (getRange(a1Notation
على تحديد نطاق البيانات المراد نقلها، وذلك من خلال استخدام طريقة التدوين A1، فقد أدخلنا "F2: F" كمعامل للتابع لتحديد العمود "F" (باستثناء الخلية F1)، فإذا كان النطاق المحدد موجودًا فإن التابع (getRange(a1Notation
يُرجع مثيل هذا "النطاق" ويخزنه في متغير myRange
ليسهل عملية استخدامه مرة أخرى.
وبمجرد تحديد النطاق يأخذ التابع (moveTo(target
محتويات المتغير myRange
سواء كانت قيم أو تنسيقات لينقلها، وتحدد الوجهة (العمود C) باستخدام طريقة التدوين A1، فقد أدخلنا "C2" كمعامل للتابع لتحديد العمود "C"، وهنا قد تستعجب من أننا حددنا خلية واحدة وليس العمود بالكامل كما فعلنا بالسطر السابق، ولكي نزيل استعجابك عند نقل البيانات لا تحتاج إلى مطابقة الأحجام مع نطاقات الهدف والوجهة، لأن Apps Script بكل بساطة يعمل على تراصف القيم بنفس ترتيبها داخل الخلايا.
اقتباستنويه: عند كتابة النصوص البرمجية الخاصة بك تأكد من اختبارها بدقة للتأكد من أن بياناتك وضعت في المكان الذي تريده، وذلك لأن Apps Script يكتب فوق قيم البيانات الحالية عند تغيير قيم الخلية، فإذا لم تكن حريصًا سوف تتسبب في الكتابة فوق البيانات التي تنوي الاحتفاظ بها، ففي هذا المثال كان العمود "C" فارغًا ولكن إذا كانت هناك بيانات فإن التابع
(moveTo(target
سيزيلها.
نطاقات الفرز
يتيح لك الصنف Range
قراءة مجموعات الخلايا وتحديثها وتنظيمها، فعلى سبيل المثال: يمكنك فرز نطاق بيانات باستخدام التابع (Range.sort(sortSpecObj
كما يلي:
بداية، في جداول البيانات الذي نتدرب عليه باسم "أسعار الأفوكادو" انقر على التبويبة أو الورقة التي باسم "الورقة1" لتنشيطها ثم عدِّل في محرر Apps Script الشيفرة البرمجية للدالة ()duplicateAndOrganizeActiveSheet
لكي تتطابق ما يلي:
function duplicateAndOrganizeActiveSheet() { var mySS = SpreadsheetApp.getActiveSpreadsheet(); var duplicateSheet = mySS.duplicateActiveSheet(); // تغيير اسم الورقة الجديدة. duplicateSheet.setName("_الورقة" + + duplicateSheet.getSheetId()); // تنسيق الورقة الجديدة. duplicateSheet.autoResizeColumns(1, 5); duplicateSheet.setFrozenRows(2); نقل العمود F إلى العمود C // var myRange = duplicateSheet.getRange("F2:F"); myRange.moveTo(duplicateSheet.getRange("C2")); فرز جميع البيانات باستخدام العمود C (معلومات السعر) // myRange = duplicateSheet.getRange("A3:D55"); myRange.sort(3); }
احفظ الشيفرة البرمجية الخاصة بك بالنقر على أيقونة "حفظ"، ثم انقر على زر "تنفيذ" من أعلى النافذة.
بعدها، ارجع إلى جداول البيانات لمشاهدة إضافة علامة تبويب جديدة أو ورقة مكررة وإعادة تسميتها وتنشيطها وتنسيقها ونقل محتويات العمود "F" إلى العمود "C" وفرز جميع البيانات الموجودة في الجدول باستخدام معلومات السعر في العمود "C" عند تشغيل الدالة.
لنلق نظرة على الشيفرة البرمجية التي أدخلتها: يعمل التابع (getRange(a1Notation
على تحديد نطاق جديد يغطي الخلايا "A3:D55" (الجدول بأكمله باستثناء رؤوس الأعمدة)، ثم تستدعي الشيفرة البرمجية التابع (sort(sortSpecObj
لفرز الجدول، ثم أدخلنا المُعامل (3) وهي رقم العمود المطلوب الفرز وفقًا له، فيعمل التابع على فرز النطاق إذ تنتقل قيم العمود المشار إليه من الأدنى إلى الأعلى (قيم تصاعدية).
ويمكن أن يؤدي التابع (sort(sortSpecObj
مهام فرز أكثر تعقيدًا، لكنك لست بحاجة إليها هنا، ويمكنك عرض جميع التوابع المختلفة التي يمكنك من خلالها استدعاء نطاقات الفرز من خلال الوثائق المرجعية لتوابع الفرز.
خاتمة
وإلى هنا نكون قد وصلنا إلى نهاية هذا الدرس من دليل أساسيات برمجة التطبيقات باستخدام جداول بيانات جوجل الذي تعلمنا فيه كيف تُمَثَّل جداول البيانات والأوراق والنطاقات في Apps Script، كما تعرفنا على بعض الاستخدامات الأساسية للأصناف SpreadsheetApp
، و Spreadsheet
، و Sheet
، و Range
.
وسوف نتعمق في الدرس القادم أكثر في كيفية قراءة البيانات وكتابتها وتعديلها داخل جدول بيانات.
نتمنى أن يكون هذا الدليل قد أضاف لكم معلومات جديدة ومفيدة، وفي حالة وجود أي استفسارات لا تترددوا في ذكرها لنا في التعليقات.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.