5 وظائف نصية لأوراق Google تحتاج إلى معرفتها

5-وظائف-نصية-لأوراق-Google-تحتاج-إلى-معرفتها.png


تعد Google Sheets أداة جداول بيانات قوية قائمة على السحابة تتيح لك القيام بأي شيء تقريبًا يمكنك القيام به في Microsoft Excel. لكن القوة الحقيقية لـ Google Sheets هي ميزة Google Scripting التي تأتي معها.

البرمجة النصية لتطبيقات Google هي أداة برمجة نصية في الخلفية لا تعمل فقط في جداول بيانات Google ولكن أيضًا في مستندات Google و Gmail و Google Analytics وتقريبًا كل خدمة سحابة أخرى من Google. يسمح لك بأتمتة هذه التطبيقات الفردية ودمج كل من هذه التطبيقات معًا.

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

كيفية إنشاء برنامج نصي لتطبيقات Google

يمكنك البدء في إنشاء أول نص برمجي لتطبيقات Google الآن من جداول بيانات Google.

للقيام بذلك ، حدد هيأ من القائمة محرر النص.

يؤدي هذا إلى فتح نافذة محرر البرنامج النصي والتعيين الافتراضي لوظيفة تسمى وظيفتي (). هنا يمكنك إنشاء واختبار برنامج Google النصي الخاص بك.

لتجربتها ، حاول إنشاء وظيفة البرنامج النصي لجداول بيانات Google التي ستقرأ البيانات من خلية واحدة ، وتجري العمليات الحسابية عليها ، وترسل كمية البيانات إلى خلية أخرى.

وظيفة جلب البيانات من خلية هي getRange () أنا الحصول على قيمة () المهام. يمكنك تحديد الخلية بالصف والعمود. لذلك ، إذا كانت لديك قيمة في الصف 2 والعمود 1 (العمود A) ، فسيبدو الجزء الأول من البرنامج النصي كما يلي:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var row = 2;
   var col = 1;
   var data = sheet.getRange(row, col).getValue();
}

سيؤدي هذا إلى حفظ القيم من تلك الخلية في الملف داين متغير. يمكنك إجراء عمليات حسابية على البيانات ثم حفظ تلك البيانات في خلية أخرى. لذلك سيبدو الجزء الأخير من هذه الوظيفة كما يلي:

   var results = data * 100;
   sheet.getRange(row, col+1).setValue(results);
}

عندما تنتهي من كتابة وظيفتك ، حدد رمز القرص للكتابة إليه.

في المرة الأولى التي تقوم فيها بتشغيل ميزة نصية جديدة لجداول بيانات Google مثل هذه الميزة (عن طريق تحديد رمز التشغيل) ، تحتاج إلى تقديم إذن لتشغيل البرنامج النصي في حسابك على Google.

السماح للأذونات بالمتابعة. بعد تشغيل البرنامج النصي ، سترى أن البرنامج النصي قد حفظ نتائج الحساب في الخلية الهدف.

الآن بعد أن عرفت كيفية كتابة الوظيفة الأساسية لبرنامج نصي لتطبيقات Google ، دعنا نلقي نظرة على الوظائف الأكثر تقدمًا.

استخدم getValues ​​لتحميل المصفوفات

يمكنك نقل مفهوم إجراء العمليات الحسابية على البيانات في جدول بيانات باستخدام البرامج النصية إلى مستوى جديد باستخدام المصفوفات. إذا قمت بتحميل متغير في برنامج Google Apps النصي باستخدام طريقة getValues ​​، فسيكون المتغير عبارة عن مصفوفة يمكنها تحميل قيم متعددة من ورقة.

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var data = sheet.getDataRange().getValues();

متغير البيانات عبارة عن صفيف متعدد الأبعاد يحتوي على جميع البيانات الموجودة على الورقة. لإجراء عمليات حسابية على البيانات ، يمكنك استخدام ملف إلى عن على عقدة. سيعمل عداد الحلقة for على كل صف وسيظل العمود ثابتًا بناءً على العمود الذي تريد الحصول على البيانات منه.

في مثال جدول البيانات الخاص بنا ، يمكنك إجراء عملية حسابية على ثلاثة صفوف من البيانات على النحو التالي.

for (var i = 1; i < data.length; i++) {
   var result = data[i][0] * 100;
   sheet.getRange(i+1, 2).setValue(result); 
   }
}

حفظ وتشغيل هذا البرنامج النصي على النحو الوارد أعلاه. ستلاحظ ملء جميع النتائج في العمود 2 في جدول البيانات.

ستلاحظ أن مرجع الخلية والصف في متغير مصفوفة يختلف عن دالة getRange.

داين[i][0] يشير إلى أبعاد الصفيف حيث يكون البعد الأول صفًا والثاني عمودًا. كلاهما يبدأ من الصفر.

getRange (i + 1، 2) يشير إلى الصف الثاني عندما يكون i = 1 (لأن الصف 1 هو الرأس) و 2 هو العمود الثاني الذي يخزن النتائج.

استخدم appendRow لحفظ النتائج

ماذا لو كان لديك جدول بيانات حيث تريد حفظ البيانات في صف جديد بدلاً من عمود جديد؟

هذا من السهل القيام به appendRow وظيفة. لن تزعج هذه الميزة أي بيانات موجودة في ورقة العمل. سيقوم فقط بإلحاق صف جديد بالورقة الحالية.

كمثال ، أنشئ دالة من 1 إلى 10 وستظهر لك بسطًا بمضاعفات 2 وات عداد عمود.

ستبدو هذه الوظيفة كما يلي:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();

   for (var i = 1; i<11; i++) {
      var result = i * 2;
     sheet.appendRow([i,result]);
   }
}

فيما يلي النتائج عند تشغيل هذه الميزة.

معالجة موجزات RSS باستخدام URLFetchApp

يمكنك دمج وظيفة البرنامج النصي السابقة في جداول بيانات Google والإضافة URLFetchApp لتنزيل موجز RSS من أي موقع ويب وحفظ سطر في جدول بيانات لكل مقالة منشورة مؤخرًا على موقع الويب هذا.

هذه في الأساس طريقة قائمة بذاتها لإنشاء جدول بيانات قارئ RSS الخاص بك!

النص الذي يقوم بذلك ليس معقدًا جدًا أيضًا.

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var item, date, title, link, desc; 
   var txt = UrlFetchApp.fetch("https://www.topsecretwriters.com/rss").getContentText();
   var doc = Xml.parse(txt, false);  

   title = doc.getElement().getElement("channel").getElement("title").getText();
   var items = doc.getElement().getElement("channel").getElements("item");   

// Parsing single items in the RSS Feed

for (var i in items) {
   item  = items[i];
   title = item.getElement("title").getText();
   link  = item.getElement("link").getText();
   date  = item.getElement("pubDate").getText();
   desc  = item.getElement("description").getText();
   
   sheet.appendRow([title,link,date,desc]);
}
}

كما ترى، Xml.parse يستخرج كل عنصر من موجز RSS ويفصل كل سطر بالعنوان والرابط والتاريخ والوصف.

باستخدام appendRow ، يمكنك وضع هذه العناصر في الأعمدة المناسبة لكل عنصر في موجز RSS الخاص بك.

ستبدو النتيجة في ورقة العمل الخاصة بك كما يلي:

بدلاً من تضمين عنوان URL لموجز RSS في برنامج نصي ، يمكنك الحصول على حقل URL في الورقة الخاصة بك ثم الحصول على أوراق متعددة – واحدة لكل موقع تريد مراقبته.

اجمع السلاسل وأضف حرف إرجاع

يمكنك المضي قدمًا في جدول بيانات RSS الخاص بك عن طريق إضافة بعض ميزات معالجة النص ، ثم استخدام ميزة البريد الإلكتروني لإرسال بريد إلكتروني إلى نفسك يلخص جميع المنشورات الجديدة في موجز RSS الخاص بالموقع.

للقيام بذلك ، في البرنامج النصي الذي قمت بإنشائه في القسم السابق ، سترغب في إضافة نص برمجي يستخرج جميع المعلومات من جدول البيانات.

ستحتاج إلى إنشاء سطر الموضوع ونص البريد الإلكتروني من خلال تحليل جميع المعلومات معًا من نفس مصفوفة “العناصر” التي استخدمتها لحفظ بيانات RSS في جدول البيانات.

للقيام بذلك ، قم بتهيئة الموضوع والرسالة بوضع الأسطر التالية قبل حلقة For “items”.

var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’

بعد ذلك ، في نهاية حلقة for “items” (مباشرةً بعد وظيفة appendRow) ، أضف السطر التالي.

message = message + title + 'n' + link + 'n' + date + 'n' + desc + 'n' + 'n n';

سوف يربط الرمز “+” جميع العناصر الأربعة معًا ، متبوعًا بحرف “n” لإرجاع أول سطر بعد كل سطر. في نهاية كل كتلة بيانات العنوان ، ستحتاج إلى اثنين من أحرف إرجاع لهيكل بريد إلكتروني منسق بشكل جيد.

بعد معالجة جميع الأسطر ، يحتفظ متغير “body” بسلسلة البريد الإلكتروني بأكملها. الآن يمكنك إرسال بريد إلكتروني!

كيفية إرسال بريد إلكتروني في برنامج نصي لتطبيقات Google

سيكون القسم التالي من نص Google النصي هو إرسال “الموضوع” و “المحتوى” عبر البريد الإلكتروني. من السهل جدًا القيام بذلك في Google Script.

var emailAddress = [email protected];
MailApp.sendEmail(emailAddress, subject, message);

MailApp عبارة عن فئة ملائمة جدًا في البرمجة النصية لتطبيقات Google والتي تمنحك الوصول إلى خدمة البريد الإلكتروني لحساب Google الخاص بك لإرسال البريد الإلكتروني واستلامه. يتيح ذلك لخط واحد مع sendEmail إرسال أي بريد إلكتروني يحتوي فقط على عنوان البريد الإلكتروني والموضوع والجسم.

هذا ما سيبدو عليه البريد الإلكتروني المستلم.

إن الجمع بين القدرة على استخراج موجز RSS للموقع وتخزينه في ورقة Google وإرساله إلى نفسك مع روابط URL المرفقة يجعل من السهل جدًا تتبع أحدث محتوى على أي موقع.

هذا مجرد مثال واحد على الاحتمالات المتاحة في البرامج النصية لتطبيقات Google لأتمتة العمليات ودمج خدمات السحابة المتعددة.

scroll to top