5 funkcií skriptu Tabuliek Google, ktoré potrebujete vedieť

Tabuľky Google(Google Sheets) sú výkonný cloudový tabuľkový nástroj, ktorý vám umožňuje robiť takmer všetko, čo by ste mohli robiť v programe Microsoft Excel(Microsoft Excel) . Skutočnou silou Tabuliek Google(Google Sheets) je však funkcia Google Scripting , ktorá sa s nimi dodáva.(Google Scripting)

Skriptovanie Google Apps(Google Apps) je nástroj na skriptovanie na pozadí, ktorý funguje nielen v Tabuľkách Google(in Google Sheets) , ale aj v Dokumentoch Google, Gmaile, Google Analytics a takmer vo všetkých ostatných cloudových službách Google . Umožňuje vám automatizovať tieto jednotlivé aplikácie a navzájom integrovať každú z týchto aplikácií.

V tomto článku sa dozviete, ako začať so skriptovaním v službe Google Apps(Google Apps) , ako vytvoriť základný skript v Tabuľkách Google(Google Sheets) na čítanie a zápis údajov buniek a najefektívnejšie pokročilé funkcie skriptu Tabuľky Google .(Google Sheets)

Ako vytvoriť skript Google Apps(How to Create a Google Apps Script)

Hneď teraz môžete začať vytvárať svoj prvý skript Google Apps z (Google Apps)Tabuliek Google(Google Sheets)

Ak to chcete urobiť, z ponuky vyberte Nástroje(Tools) a potom Editor skriptov(Script Editor) .

Tým sa otvorí okno editora skriptov a predvolene sa použije funkcia s názvom myfunction() . Tu môžete vytvoriť a otestovať svoj skript Google Script(Google Script) .

Ak to chcete vyskúšať, skúste vytvoriť funkciu skriptu Tabuliek Google(Google Sheets) , ktorá načíta údaje z jednej bunky, vykoná na nej výpočet a odošle množstvo údajov do inej bunky.

Funkciou na získanie údajov z bunky sú funkcie getRange() a getValue() . Bunku môžete identifikovať podľa riadka a stĺpca. Takže ak máte hodnotu v riadku 2 a stĺpci 1 (stĺpec A), prvá časť vášho skriptu bude vyzerať takto:

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

Toto uloží hodnotu z tejto bunky do dátovej(data) premennej. S údajmi môžete vykonať výpočet a potom tieto údaje zapísať do inej bunky. Takže posledná časť tejto funkcie bude:

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

Keď dokončíte písanie funkcie, vyberte ikonu disku na uloženie. 

Pri prvom spustení novej funkcie skriptu Tabuliek Google(Google Sheets) , ako je táto (výberom ikony spustenia), budete musieť poskytnúť autorizáciu(Authorization) na spustenie skriptu vo vašom účte Google(Google Account) .

Povoľte povolenia pokračovať. Po spustení skriptu uvidíte, že skript zapísal výsledky výpočtu do cieľovej bunky.

Teraz, keď už viete, ako napísať základnú funkciu skriptu Google Apps , poďme sa pozrieť na niektoré pokročilejšie funkcie.

Na načítanie polí použite getValues(Use getValues To Load Arrays)

Koncept vykonávania výpočtov s údajmi v tabuľke so skriptovaním môžete posunúť na novú úroveň pomocou polí. Ak načítate premennú do skriptu Google Apps pomocou getValues, premennou bude pole, ktoré dokáže načítať viacero hodnôt z hárka.

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

Dátová premenná je viacrozmerné pole, ktoré obsahuje všetky údaje z hárka. Ak chcete vykonať výpočet údajov, použite cyklus for . Počítadlo cyklu for bude fungovať v každom riadku a stĺpec zostane konštantný na základe stĺpca, z ktorého chcete stiahnuť údaje.

V našom príklade tabuľky môžete vykonávať výpočty na troch riadkoch údajov nasledovne.

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

Uložte(Save) a spustite tento skript rovnako ako vyššie. Uvidíte, že všetky výsledky sú vyplnené do stĺpca 2 v tabuľke.

Všimnete si, že odkazovanie na bunku a riadok v premennej poľa je iné ako pri funkcii getRange. 

data[i][0] odkazuje na rozmery poľa, kde prvý rozmer je riadok a druhý je stĺpec. Oba začínajú od nuly.

getRange(i+1, 2) odkazuje na druhý riadok, keď i=1 (keďže riadok 1 je hlavička) a 2 je druhý stĺpec, kde sú uložené výsledky.

Na zapisovanie výsledkov použite appendRow(Use appendRow To Write Results)

Čo ak máte tabuľku, do ktorej chcete zapisovať údaje do nového riadka namiesto do nového stĺpca?

Pomocou funkcie appendRow(appendRow) je to jednoduché . Táto funkcia nebude obťažovať žiadne existujúce údaje v hárku. Iba pridá nový riadok k existujúcemu hárku.

Ako príklad vytvorte funkciu, ktorá bude počítať od 1 do 10 a zobrazí počítadlo s násobkami 2 v stĺpci Počítadlo .(Counter)

Táto funkcia by vyzerala takto:

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

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

Tu sú výsledky pri spustení tejto funkcie.

Spracujte informačné kanály RSS pomocou URLFetchApp(Process RSS Feeds With URLFetchApp)

Môžete skombinovať predchádzajúcu funkciu skriptu Tabuliek Google a (Google Sheets)URLFetchApp na stiahnutie informačného kanála RSS z ľubovoľnej webovej lokality a napísať riadok do tabuľky pre každý článok nedávno uverejnený na tejto webovej lokalite.

Toto je v podstate DIY metóda na vytvorenie vlastnej tabuľky čítačky RSS kanálov!(RSS)

Skript na to tiež nie je príliš zložitý.

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

Ako môžete vidieť, Xml.parse vytiahne každú položku z informačného kanála RSS a rozdelí každý riadok na názov, odkaz, dátum a popis. 

Pomocou funkcie appendRow môžete tieto položky vložiť do príslušných stĺpcov pre každú jednotlivú položku v kanáli RSS .

Výstup vo vašom hárku bude vyzerať asi takto:

Namiesto vloženia adresy URL(URL) informačného kanála RSS do skriptu môžete mať v hárku pole s adresou URL(URL) a potom mať viacero hárkov – jeden pre každú webovú stránku, ktorú chcete monitorovať.

Spojte reťazce(Concatenate Strings) a pridajte(Add) návrat vozíka(Carriage Return)

Môžete posunúť tabuľku RSS o krok ďalej pridaním niektorých funkcií na manipuláciu s textom a potom použiť funkcie e-mailu na odoslanie e-mailu so súhrnom všetkých nových príspevkov v informačnom kanáli RSS stránky .

Ak to chcete urobiť, pod skript, ktorý ste vytvorili v predchádzajúcej časti, budete chcieť pridať nejaké skriptovanie, ktoré extrahuje všetky informácie v tabuľke. 

Predmet a telo textu e-mailu budete chcieť vytvoriť tak, že analyzujete všetky informácie z rovnakého poľa „položky“, ktoré ste použili na zapisovanie údajov RSS do tabuľky. 

Ak to chcete urobiť, inicializujte predmet a správu umiestnením nasledujúcich riadkov pred slučku „Items“ For.

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

Potom na koniec cyklu „items“ for (hneď za funkciou appendRow) pridajte nasledujúci riadok.

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

Symbol „+“ spojí všetky štyri položky dohromady, za ktorým nasleduje „ “ pre návrat vozíka po každom riadku. Na konci každého bloku údajov názvu budete chcieť dva návraty vozíka pre pekne naformátované telo e-mailu.

Po spracovaní všetkých riadkov obsahuje premenná „body“ celý reťazec e-mailovej správy. Teraz ste pripravení odoslať e-mail!

Ako odoslať e-mail v skripte Google Apps(How To Send Email In Google Apps Script)

Ďalšou časťou vášho skriptu Google Script(Google Script) bude odoslanie „predmetu“ a „tela“ e-mailom. Urobiť to v Google Script je veľmi jednoduché.

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

MailApp je veľmi pohodlná trieda v rámci skriptov (MailApp)Google Apps , ktorá vám poskytuje prístup k e-mailovej službe vášho účtu Google na odosielanie a prijímanie e-mailov. Vďaka tomu vám jediný riadok s funkciou sendEmail umožňuje odoslať akýkoľvek e-mail(send any email) len s e-mailovou adresou, predmetom a hlavným textom.

Takto bude vyzerať výsledný email. 

Vďaka kombinácii možnosti extrahovať informačný kanál RSS(RSS) z webovej lokality , uložiť ho do tabuľky Google(Google Sheet) a odoslať si ho s odkazmi na adresy URL(URL) je veľmi pohodlné sledovať najnovší obsah ľubovoľnej webovej lokality.

Toto je len jeden príklad výkonu, ktorý majú skripty Google Apps k dispozícii na automatizáciu akcií a integráciu viacerých cloudových služieb.



About the author

Som počítačový technik, ktorý dlhé roky pracuje s Androidom a kancelárskym softvérom. Posledných približne 5 rokov tiež učím ľudí používať počítače Mac. Ak hľadáte niekoho, kto vie, ako opraviť veci na vašom počítači, pravdepodobne vám pomôžem!



Related posts