5 Λειτουργίες σεναρίου Φύλλων Google που πρέπει να γνωρίζετε

Τα Φύλλα Google(Google Sheets) είναι ένα ισχυρό εργαλείο υπολογιστικών φύλλων που βασίζεται σε σύννεφο που σας επιτρέπει να κάνετε σχεδόν ό,τι θα μπορούσατε να κάνετε στο Microsoft Excel . Αλλά η πραγματική δύναμη των Φύλλων Google(Google Sheets) είναι η δυνατότητα Google Scripting που συνοδεύει.

Η δέσμη ενεργειών Google Apps(Google Apps) είναι ένα εργαλείο δέσμης ενεργειών φόντου που λειτουργεί όχι μόνο στα Φύλλα Google(in Google Sheets) , αλλά και στα Έγγραφα Google, το Gmail, το Google Analytics(Google Analytics) και σχεδόν κάθε άλλη υπηρεσία cloud της Google . Σας επιτρέπει να αυτοματοποιείτε αυτές τις μεμονωμένες εφαρμογές και να ενσωματώνετε καθεμία από αυτές τις εφαρμογές μεταξύ τους.

Σε αυτό το άρθρο θα μάθετε πώς να ξεκινήσετε με τη δέσμη ενεργειών των Εφαρμογών Google(Google Apps) , τη δημιουργία ενός βασικού σεναρίου στα Φύλλα Google(Google Sheets) για ανάγνωση και εγγραφή δεδομένων κυψέλης και τις πιο αποτελεσματικές προηγμένες λειτουργίες σεναρίου Φύλλων Google .(Google Sheets)

Πώς να δημιουργήσετε ένα σενάριο Εφαρμογών Google(How to Create a Google Apps Script)

Μπορείτε να ξεκινήσετε τώρα τη δημιουργία του πρώτου σας σεναρίου Google Apps μέσα από (Google Apps)τα Φύλλα Google(Google Sheets)

Για να το κάνετε αυτό, επιλέξτε Εργαλεία(Tools) από το μενού και, στη συνέχεια, Επεξεργαστής Σεναρίων(Script Editor) .

Αυτό ανοίγει το παράθυρο του προγράμματος επεξεργασίας σεναρίων και ορίζει από προεπιλογή μια συνάρτηση που ονομάζεται myfunction() . Εδώ μπορείτε να δημιουργήσετε και να δοκιμάσετε το Google Script σας .

Για να το δείτε, δοκιμάστε να δημιουργήσετε μια συνάρτηση σεναρίου Φύλλων Google(Google Sheets) που θα διαβάζει δεδομένα από ένα κελί, θα εκτελεί έναν υπολογισμό σε αυτό και θα εξάγει την ποσότητα δεδομένων σε ένα άλλο κελί.

Η συνάρτηση για τη λήψη δεδομένων από ένα κελί είναι οι συναρτήσεις getRange()(getRange()) και getValue() . Μπορείτε να αναγνωρίσετε το κελί ανά γραμμή και στήλη. Έτσι, εάν έχετε μια τιμή στη γραμμή 2 και στη στήλη 1 (η στήλη A), το πρώτο μέρος του σεναρίου σας θα μοιάζει με αυτό:

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

Αυτό αποθηκεύει την τιμή από αυτό το κελί στη μεταβλητή δεδομένων . (data)Μπορείτε να εκτελέσετε έναν υπολογισμό στα δεδομένα και, στη συνέχεια, να γράψετε αυτά τα δεδομένα σε άλλο κελί. Έτσι το τελευταίο μέρος αυτής της συνάρτησης θα είναι:

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

Όταν ολοκληρώσετε τη σύνταξη της λειτουργίας σας, επιλέξτε το εικονίδιο του δίσκου για αποθήκευση. 

Την πρώτη φορά που θα εκτελέσετε μια νέα λειτουργία σεναρίου Φύλλων Google(Google Sheets) όπως αυτή (επιλέγοντας το εικονίδιο εκτέλεσης), θα πρέπει να παρέχετε Εξουσιοδότηση(Authorization) για την εκτέλεση του σεναρίου στον Λογαριασμό σας Google(Google Account) .

Να επιτρέπεται η συνέχιση των δικαιωμάτων. Μόλις εκτελεστεί το σενάριό σας, θα δείτε ότι το σενάριο έγραψε τα αποτελέσματα υπολογισμού στο κελί προορισμού.

Τώρα που ξέρετε πώς να γράψετε μια βασική λειτουργία σεναρίου Εφαρμογών Google(Google Apps) , ας ρίξουμε μια ματιά σε μερικές πιο προηγμένες λειτουργίες.

Χρησιμοποιήστε το getValues ​​για να φορτώσετε πίνακες(Use getValues To Load Arrays)

Μπορείτε να μεταφέρετε την έννοια της εκτέλεσης υπολογισμών σε δεδομένα στο υπολογιστικό φύλλο σας με δέσμες ενεργειών σε ένα νέο επίπεδο χρησιμοποιώντας πίνακες. Εάν φορτώσετε μια μεταβλητή στο σενάριο των Εφαρμογών Google(Google Apps) χρησιμοποιώντας το getValues, η μεταβλητή θα είναι ένας πίνακας που μπορεί να φορτώσει πολλές τιμές από το φύλλο.

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

Η μεταβλητή δεδομένων είναι ένας πολυδιάστατος πίνακας που συγκρατεί όλα τα δεδομένα από το φύλλο. Για να εκτελέσετε έναν υπολογισμό στα δεδομένα, χρησιμοποιείτε έναν βρόχο for . Ο μετρητής του βρόχου for θα λειτουργήσει σε κάθε γραμμή και η στήλη παραμένει σταθερή, με βάση τη στήλη όπου θέλετε να τραβήξετε τα δεδομένα.

Στο παράδειγμά μας υπολογιστικό φύλλο, μπορείτε να εκτελέσετε υπολογισμούς στις τρεις σειρές δεδομένων ως εξής.

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

Αποθηκεύστε(Save) και εκτελέστε αυτό το σενάριο όπως κάνατε παραπάνω. Θα δείτε ότι όλα τα αποτελέσματα συμπληρώνονται στη στήλη 2 στο υπολογιστικό φύλλο σας.

Θα παρατηρήσετε ότι η αναφορά σε ένα κελί και μια σειρά σε μια μεταβλητή πίνακα είναι διαφορετική από μια συνάρτηση getRange. 

Το data[i][0](data[i][0]) αναφέρεται στις διαστάσεις του πίνακα όπου η πρώτη διάσταση είναι η γραμμή και η δεύτερη η στήλη. Και τα δύο ξεκινούν από το μηδέν.

getRange(i+1, 2) αναφέρεται στη δεύτερη σειρά όταν i=1 (καθώς η σειρά 1 είναι η κεφαλίδα) και το 2 είναι η δεύτερη στήλη όπου αποθηκεύονται τα αποτελέσματα.

Χρησιμοποιήστε το appendRow για να γράψετε αποτελέσματα(Use appendRow To Write Results)

Τι γίνεται αν έχετε ένα υπολογιστικό φύλλο όπου θέλετε να γράψετε δεδομένα σε μια νέα σειρά αντί για μια νέα στήλη;

Αυτό είναι εύκολο να γίνει με τη συνάρτηση appendRow . Αυτή η λειτουργία δεν θα ενοχλήσει κανένα υπάρχον δεδομένα στο φύλλο. Απλώς θα προσαρτήσει μια νέα σειρά στο υπάρχον φύλλο.

Για παράδειγμα, φτιάξτε μια συνάρτηση που θα μετράει από το 1 έως το 10 και θα εμφανίζει έναν μετρητή με πολλαπλάσια του 2 σε μια στήλη Μετρητής .(Counter)

Αυτή η συνάρτηση θα μοιάζει με αυτό:

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

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

Εδώ είναι τα αποτελέσματα όταν εκτελείτε αυτήν τη λειτουργία.

Επεξεργαστείτε τις ροές RSS με το URLFetchApp(Process RSS Feeds With URLFetchApp)

Θα μπορούσατε να συνδυάσετε την προηγούμενη λειτουργία σεναρίου Φύλλων Google και το (Google Sheets)URLFetchApp για να τραβήξετε τη ροή RSS(RSS) από οποιονδήποτε ιστότοπο και να γράψετε μια σειρά σε ένα υπολογιστικό φύλλο για κάθε άρθρο που δημοσιεύτηκε πρόσφατα σε αυτόν τον ιστότοπο.

Αυτή είναι βασικά μια μέθοδος DIY για να δημιουργήσετε το δικό σας υπολογιστικό φύλλο ανάγνωσης ροών (DIY)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(Xml.parse) βγάζει κάθε στοιχείο από τη ροή RSS(RSS) και διαχωρίζει κάθε γραμμή στον τίτλο, τον σύνδεσμο, την ημερομηνία και την περιγραφή. 

Χρησιμοποιώντας τη συνάρτηση appendRow , μπορείτε να τοποθετήσετε αυτά τα στοιχεία σε κατάλληλες στήλες για κάθε στοιχείο στη ροή RSS .

Η έξοδος στο φύλλο σας θα μοιάζει κάπως έτσι:

Αντί να ενσωματώσετε τη διεύθυνση URL(URL) της ροής RSS στο σενάριο, θα μπορούσατε να έχετε ένα πεδίο στο φύλλο σας με τη διεύθυνση URL(URL) και, στη συνέχεια, να έχετε πολλά φύλλα – ένα για κάθε ιστότοπο που θέλετε να παρακολουθήσετε.

Συνδέστε τις χορδές(Concatenate Strings) και προσθέστε(Add) μια επιστροφή μεταφοράς(Carriage Return)

Θα μπορούσατε να πάτε το υπολογιστικό φύλλο RSS ένα βήμα παραπέρα προσθέτοντας ορισμένες λειτουργίες χειρισμού κειμένου και, στη συνέχεια, να χρησιμοποιήσετε τις λειτουργίες email για να στείλετε στον εαυτό σας ένα email με μια περίληψη όλων των νέων αναρτήσεων στη ροή RSS του ιστότοπου .

Για να το κάνετε αυτό, κάτω από το σενάριο που δημιουργήσατε στην προηγούμενη ενότητα, θα θέλετε να προσθέσετε κάποια σενάρια που θα εξάγουν όλες τις πληροφορίες στο υπολογιστικό φύλλο. 

Θα θελήσετε να δημιουργήσετε τη γραμμή θέματος και το σώμα κειμένου του email αναλύοντας μαζί όλες τις πληροφορίες από τον ίδιο πίνακα «στοιχείων» που χρησιμοποιήσατε για να γράψετε τα δεδομένα RSS στο υπολογιστικό φύλλο. 

Για να το κάνετε αυτό, αρχικοποιήστε το θέμα και το μήνυμα τοποθετώντας τις ακόλουθες γραμμές πριν από το βρόχο For "στοιχεία".

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

Στη συνέχεια, στο τέλος του βρόχου "στοιχεία" για (ακριβώς μετά τη συνάρτηση appendRow), προσθέστε την ακόλουθη γραμμή.

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

Το σύμβολο "+" θα ενώσει και τα τέσσερα στοιχεία μαζί ακολουθούμενο από το " " για μια επιστροφή μετά από κάθε γραμμή. Στο τέλος κάθε μπλοκ δεδομένων τίτλου, θα θέλετε δύο επιστροφές μεταφοράς για ένα όμορφα διαμορφωμένο σώμα email.

Μόλις υποβληθούν σε επεξεργασία όλες οι σειρές, η μεταβλητή "body" κρατά ολόκληρη τη συμβολοσειρά μηνύματος email. Τώρα είστε έτοιμοι να στείλετε το email!

Πώς να στείλετε email στο σενάριο Εφαρμογών Google(How To Send Email In Google Apps Script)

Η επόμενη ενότητα του Google Script σας θα είναι να στείλετε το "θέμα" και το "σώμα" μέσω email. Το να το κάνετε αυτό στο Google Script είναι πολύ εύκολο.

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

Το MailApp είναι μια πολύ βολική τάξη μέσα στα σενάρια των Εφαρμογών Google(Google Apps) που σας δίνει πρόσβαση στην υπηρεσία ηλεκτρονικού ταχυδρομείου του Λογαριασμού σας Google για αποστολή ή λήψη email. Χάρη σε αυτό, η μοναδική γραμμή με τη λειτουργία sendEmail σάς επιτρέπει να στέλνετε οποιοδήποτε email(send any email) με μόνο τη διεύθυνση email, τη γραμμή θέματος και το κύριο κείμενο.

Έτσι θα μοιάζει το email που θα προκύψει. 

Ο συνδυασμός της δυνατότητας εξαγωγής της ροής RSS(RSS) ενός ιστότοπου , αποθήκευσης σε ένα Φύλλο Google(Google Sheet) και αποστολής στον εαυτό σας με συνδέσμους URL που περιλαμβάνονται, καθιστά πολύ βολικό να παρακολουθείτε το πιο πρόσφατο περιεχόμενο για οποιονδήποτε ιστότοπο.

Αυτό είναι μόνο ένα παράδειγμα της δύναμης που είναι διαθέσιμη στα σενάρια των Εφαρμογών Google(Google Apps) για την αυτοματοποίηση ενεργειών και την ενοποίηση πολλών υπηρεσιών cloud.



About the author

"Είμαι ανεξάρτητος ειδικός στα Windows και στο Office. Έχω πάνω από 10 χρόνια εμπειρίας στην εργασία με αυτά τα εργαλεία και μπορώ να σας βοηθήσω να αξιοποιήσετε στο έπακρο. Οι δεξιότητές μου περιλαμβάνουν: εργασία με Microsoft Word, Excel, PowerPoint και Outlook, δημιουργία ιστού σελίδες και εφαρμογές και βοηθώντας τους πελάτες να επιτύχουν τους επιχειρηματικούς τους στόχους."



Related posts