5 funkcija skripte Google Sheets koje trebate znati

Google tablice(Google Sheets) moćan je alat za proračunske tablice u oblaku koji vam omogućuje da radite gotovo sve što možete učiniti u Microsoft Excelu(Microsoft Excel) . Ali prava snaga Google tablica(Google Sheets) je značajka Google Scripting koja dolazi s njima.

Skriptiranje za Google Apps(Google Apps) pozadinski je alat za skriptiranje koji radi ne samo u Google tablicama(in Google Sheets) , već i na Google dokumentima, Gmailu, Google Analyticsu(Google Analytics) i gotovo svim ostalim Google uslugama u oblaku. Omogućuje vam automatizaciju tih pojedinačnih aplikacija i integraciju svake od tih aplikacija jednu s drugom.

U ovom ćete članku naučiti kako započeti s pisanjem skripti za Google Apps , izradom osnovne skripte u Google tablicama(Google Sheets) za čitanje i pisanje podataka o ćelijama i najučinkovitijim naprednim funkcijama skripte Google tablica .(Google Sheets)

Kako stvoriti skriptu za Google Apps(How to Create a Google Apps Script)

Možete započeti s izradom svoje prve skripte za Google Apps iz Google tablica(Google Sheets)

Da biste to učinili, s izbornika odaberite Alati , a zatim (Tools)Uređivač skripte(Script Editor) .

Ovo otvara prozor uređivača skripte i zadana je funkcija koja se zove myfunction() . Ovdje možete izraditi i testirati svoju Google skriptu(Google Script) .

Da biste to pokušali, pokušajte stvoriti funkciju skripte Google Sheets koja će čitati podatke iz jedne ćelije, izvršiti izračun na njoj i iznijeti količinu podataka u drugu ćeliju.

Funkcija za dobivanje podataka iz ćelije su funkcije getRange() i getValue() . Možete identificirati ćeliju po retku i stupcu. Dakle, ako imate vrijednost u retku 2 i stupcu 1 (stupac A), prvi dio vaše skripte će izgledati ovako:

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

Time se pohranjuje vrijednost iz te ćelije u varijablu podataka . (data)Možete izvršiti izračun na podacima, a zatim te podatke zapisati u drugu ćeliju. Dakle, posljednji dio ove funkcije bit će:

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

Kada završite s pisanjem svoje funkcije, odaberite ikonu diska za spremanje. 

Kada prvi put pokrenete novu funkciju skripte Google tablica(Google Sheets) poput ove (odabirom ikone za pokretanje), morat ćete dati autorizaciju(Authorization) za pokretanje skripte na vašem Google računu(Google Account) .

Dopustite dopuštenjima nastavak. Nakon što se vaša skripta pokrene, vidjet ćete da je skripta napisala rezultate izračuna u ciljnu ćeliju.

Sada kada znate kako napisati osnovnu funkciju skripte za Google Apps , pogledajmo neke naprednije funkcije.

Koristite getValues ​​za učitavanje nizova(Use getValues To Load Arrays)

Koncept izračunavanja podataka u proračunskoj tablici sa skriptiranjem možete podići na novu razinu korištenjem nizova. Ako učitate varijablu u skriptu Google Apps pomoću getValues, varijabla će biti niz koji može učitati više vrijednosti s lista.

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

Podatkovna varijabla je višedimenzionalni niz koji sadrži sve podatke s lista. Za izračun podataka koristite petlju for . Brojač petlje for radit će kroz svaki redak, a stupac ostaje konstantan, na temelju stupca u koji želite povući podatke.

U našem primjeru proračunske tablice možete izvesti izračune na tri retka podataka kako slijedi.

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

Spremite(Save) i pokrenite ovu skriptu kao što ste učinili gore. Vidjet ćete da su svi rezultati popunjeni u stupac 2 u vašoj proračunskoj tablici.

Primijetit ćete da se upućivanje na ćeliju i redak u varijabli polja razlikuje od funkcije getRange. 

data[i][0] se odnosi na dimenzije polja gdje je prva dimenzija red, a druga stupac. I jedno i drugo počinje od nule.

getRange(i+1, 2) se odnosi na drugi red kada je i=1 (budući da je redak 1 zaglavlje), a 2 je drugi stupac u koji se pohranjuju rezultati.

Koristite appendRow za pisanje rezultata(Use appendRow To Write Results)

Što ako imate proračunsku tablicu u koju želite upisati podatke u novi red umjesto u novi stupac?

To je lako učiniti s funkcijom appendRow . Ova funkcija neće smetati postojećim podacima u tablici. Samo će dodati novi red postojećem listu.

Kao primjer, napravite funkciju koja će brojati od 1 do 10 i prikazati brojač s višekratnicima od 2 u stupcu Counter .

Ova funkcija bi izgledala ovako:

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

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

Evo rezultata kada pokrenete ovu funkciju.

Obradite RSS feedove pomoću URLFetchApp-a(Process RSS Feeds With URLFetchApp)

Mogli biste kombinirati prethodnu funkciju skripte Google Sheets i (Google Sheets)URLFetchApp da biste povukli RSS feed s bilo koje web stranice i upisali redak u proračunsku tablicu za svaki članak nedavno objavljen na toj web stranici.

Ovo je u osnovi DIY metoda za izradu vlastite proračunske tablice čitača RSS sadržaja!(RSS)

Skripta za to također nije previše komplicirana.

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]);
}
}

Kao što možete vidjeti, Xml.parse izvlači svaku stavku iz RSS feeda i odvaja svaki redak u naslov, vezu, datum i opis. 

Pomoću funkcije appendRow ove stavke možete staviti u odgovarajuće stupce za svaku pojedinu stavku u RSS feedu.

Izlaz u vašem listu izgledat će otprilike ovako:

Umjesto ugrađivanja URL-a RSS (URL)feeda(RSS) u skriptu, mogli biste imati polje u svom listu s URL -om , a zatim imati više listova – po jedan za svaku web stranicu koju želite pratiti.

Spojite nizove(Concatenate Strings) i dodajte(Add) povratnu liniju(Carriage Return)

RSS proračunsku tablicu možete napraviti korak dalje dodavanjem nekih funkcija za manipulaciju tekstom, a zatim koristiti funkcije e-pošte da sebi pošaljete e-poštu sa sažetkom svih novih postova u RSS feedu web-mjesta.

Da biste to učinili, ispod skripte koju ste izradili u prethodnom odjeljku, htjet ćete dodati neke skripte koje će izdvojiti sve informacije u proračunskoj tablici. 

Poželjet ćete izraditi redak predmeta i tijelo teksta e-pošte tako što ćete zajedno analizirati sve informacije iz istog niza “items” koji ste koristili za pisanje RSS podataka u proračunsku tablicu. 

Da biste to učinili, inicijalizirajte predmet i poruku postavljanjem sljedećih redaka ispred petlje For "items".

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

Zatim, na kraju "stavki" for petlje (odmah nakon funkcije appendRow), dodajte sljedeći redak.

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

Simbol “+” spojit će sve četiri stavke zajedno nakon čega slijedi “ ” za povratak na oznaku nakon svakog retka. Na kraju svakog bloka podataka naslova, trebat će vam dva povratna slova za lijepo oblikovano tijelo e-pošte.

Nakon što su svi redci obrađeni, varijabla "body" sadrži cijeli niz poruke e-pošte. Sada ste spremni za slanje e-pošte!

Kako poslati e-poštu u skripti Google Apps(How To Send Email In Google Apps Script)

Sljedeći odjeljak vaše Google skripte(Google Script) bit će slanje "predmet" i "tijelo" putem e-pošte. Učiniti to u Google Script vrlo je jednostavno.

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

MailApp je vrlo zgodna klasa unutar skripti (MailApp)Google Apps koja vam daje pristup usluzi e-pošte vašeg Google računa za slanje ili primanje e-pošte. Zahvaljujući tome, jedan redak s funkcijom sendEmail omogućuje vam da pošaljete bilo koju e-poštu(send any email) samo s adresom e-pošte, predmetom i osnovnim tekstom.

Ovako će izgledati rezultirajući email. 

Kombinirajući mogućnost izdvajanja RSS feeda web-mjesta, pohranjivanja u Google tablicu(Google Sheet) i slanja sebi s uključenim URL vezama, čini vrlo praktičnim praćenje najnovijeg sadržaja za bilo koju web stranicu.

Ovo je samo jedan primjer moći koja je dostupna u skriptama za Google Apps za automatizaciju radnji i integraciju više usluga u oblaku.



About the author

Ja sam računalni profesionalac s više od 10 godina iskustva. U slobodno vrijeme volim pomagati za uredskim stolom i učiti djecu kako se koristiti internetom. Moje vještine uključuju mnoge stvari, ali najvažnije je da znam kako pomoći ljudima u rješavanju problema. Ako trebate nekoga tko vam može pomoći s nečim hitnim ili samo želite neke osnovne savjete, obratite mi se!



Related posts