1. diel - Úvod do Google Apps Script
Google Suite je sada cloudových nástrojov pre firmy aj jednotlivcov, určite z nich poznáte aspoň Gmail. Je ich samozrejme oveľa viac, Disk pre uloženie súborov, Kalendár, Dokumenty, Tabuľky, Prezentácie, Fotky, Formuláre, Hangouts alebo Chat pre komunikáciu a ďalšie.
Google Apps Script (často sa môžete stretnúť so skratkou GAS) je jednoduchý skriptovací jazyk založený na JavaScripte, pomocou ktorého sa rad častí G Suite dá ovládať a vylepšovať.
Môžete ho použiť na drobnosti, ktoré vám ale pri práci s G Suite môžu ušetriť veľa času a práce. A samozrejme nemusíte zostať pri drobností, v Apps Script môžete robiť plnohodnotné aplikácie a využiť jeho prepojenie na ďalšie cloudové služby Google.
Príklady využitia
Ukážme si niekoľko príkladov využitia tejto technológie:
Príklad 1
Denne vám z niekoľkých adries chodia e-mail, ktorý v prílohe obsahuje CSV súbor. Vy musíte dáta z CSV súborov importovať do Tabuliek. Rovnakú prácu zastane aj skript. Bude pravidelne kontrolovať vašu prichádzajúcu poštu a ak príde e-mail z konkrétnej adresy a bude obsahovať v prílohe CSV súbor, skript prílohu uloží na Disk a importuje dáta z prílohy do Tabuľky.
Príklad 2
Na webe používate Google Formulár, ale musíte denne kontrolovať, či niekto formulár využil a prípadne na jeho správu reagovať. Formulár sa dá ľahko doplniť o skript, ktorý sa automaticky spustí vo chvíli, keď je formulár odoslaný. Skript vám môže na e-mail zaslať upozornenie, že niekto formulár použil. Okrem toho môže zákazníkovi na jeho e-mail (ktorý zadal do formulára) zaslať poďakovanie a rekapituláciu jeho odpovedí.
Potrebné nástroje
Čo pre prvé pokusy s Google Apps Script potrebujete?
- Google účet - postačí zdarma dostupná verzia. Zriadiť účet si môžete na adrese https://accounts.google.com/SignUp...
- aspoň základná znalosť angličtiny, chybové hlášky aj dokumentácia sú v angličtine
- hodí sa akékoľvek skúsenosti s programovaním
Začíname
Prihláste sa do svojho Google účtu, otvorte si aplikáciu Disk a ideme na to.
Najskôr máličko teórie. Skripty, ktoré budete vytvárať, môžu byť buď ako samostatné súbory na Disku, alebo môžu byť súčasťou Tabuliek, Dokumentov alebo napríklad formulárom (v nápovede ich nájdete pod termínom bounded).
Oba dva druhy môžu robiť v zásade to isté, ale je lepšie skryté skripty používať v prípade, že naozaj pracujú s jednou konkrétnou tabuľkou alebo dokumentom. Ak sa má skript používať pre rôzne dokumenty, je rozhodne lepšie mať ho ako samostatný súbor.
Skripty napísané v GAS beží na serveri, nie v prehliadači. Neskôr si ukážeme, že je možné napísať skripty, ktoré budú mať časť bežiaci v prehliadači (napísanú v JavaScripte) a druhú časť bežiaci na serveri (napísanú v GAS) a obe časti spolu môžu komunikovať.
Bounded skript pre tabuľku
Ako prvý si ukážeme ako vytvoriť bounded skript pre tabuľku.
Vytvorte na Disku novú tabuľku, pomenujte ju Příklad 1
a v
menu zvoľte Nástroje - Editor skriptu. Otvorí sa vám nová
záložka s editorom, v ktorej budete písať svoj prvý skript. Najprv je
potrebné skript pomenovať. Vľavo hore kliknite na text Projekt bez
názvu a zadajte nejaký názov, treba opäť Příklad 1
.
Na názve nezáleží, ale ak máte otvorenú tabuľku a na druhej záložke k
nej pribalený skript, je dobré poznať na prvý pohľad, že k sebe
patria.
Editor by teraz mal vyzerať nejako takto:
Než začneme písať náš prvý skript, tak opäť pár poznámok. V Apps Script máte k dispozícii mnoho knižníc, každá slúži k práci s inou časťou Google Suite. Nemusíte si ich názvy pamätať, ak v Editore skriptov stlačíte Ctrl + Medzerník, zobrazia sa vám ich zoznam, z ktorého knižnicu vyberiete a stlačením Enter vložíte jej názov do Editora.
Podobne potom v ďalšom kroku vyberiete metódu, čiže čo by mala knižnica vykonať. Ak máte zoznam knižníc alebo metód zobrazený a poznáte názov, ktorý chcete vybrať, stlačte príslušné znaky na klávesnici, aby ste sa v zozname dostali na požadované miesto.
Náš prvý skript by mal pracovať s tabuľkou a na to budeme potrebovať
knižnicu s názvom SpreadsheetApp
. Takže si stlačením
Ctrl + Medzerník zobrazte zoznam knižníc, potom
stlačte prvé písmená názvu knižnice, teda S P, a
stlačte Enter, názov knižnice sa vám vloží do editora. Pokiaľ
hneď za názov knižnice doplníte bodku, ponúkne sa zoznam metód, ktoré
možno zavolať.
Knižnicu máme, teraz potrebujeme nejako vybrať tabuľku, s ktorou chceme
pracovať. Pretože je skript pribalený k tabuľke Příklad 1
,
môžeme pre jej výber použiť metódu getActive()
, čiže vezmi
práve aktívny tabuľku. Metódu vyberieme zo zoznamu, ktorý sa nám ponúkne
po doplnení bodky za názov knižnice.
Tým sme získali tabuľku, ktorá ale môže mať mnoho listov. Momentálne
vybraný list opäť získame podobne ako celú tabuľku, tentoraz metódou
getActiveSheet()
.
Funkcia myFunction()
potom môže vyzerať napríklad takto:
function myFunction() { var akt_tab = SpreadsheetApp.getActive(); var akt_list = akt_tab.getActiveSheet(); }
V premennej akt_tab
máme celú tabuľku, v premennej
akt_list
práve vybraný list. Oba riadky môžeme spojiť do
jedného a v jednom kroku vybrať priamo aktívny hárok, teda napísať:
var akt_list = SpreadsheetApp.getActive().getActiveSheet();
Výber aktívneho listu možno vynechať a môžeme priamo vybrať aktívny hárok, takto:
var akt_list = SpreadsheetApp.getActiveSheet();
List by sme vybraný mali, teraz skúsime vybrať na liste nejakú bunku.
Pokiaľ budeme chcieť pracovať s bunkou, ktorá je momentálne vybratá,
použijeme metódu getActiveCell()
. Tú musíme zavolať pre
správny objekt, teda list, pretože bunka je súčasťou listu:
var akt_bunka = akt_list.getActiveCell();
Ak by sme chceli vybrať inú ako aktívny bunku, použili by sme metódu
getRange()
. Parametre getRange()
môžeme zadať
niekoľkými spôsobmi:
var range_1 = akt_list.getRange(1, 2);
Prvý parameter je číslo riadku, druhý číslo stĺpca. Riadky aj stĺpce sa číslujú od jednotky, týmto príkazom by sme teda vybrali bunku B1. Pre výber väčšej oblasti pridáme ďalšie 2 parametre, počet riadkov a počet stĺpcov. Takto by sme vybrali oblasť buniek B1: C3.
var range_1 = akt_list.getRange(1, 2, 3, 2);
Posledná možností ako oblasť, ktorú chceme, vybrať, je práve zápis v tvare C5: E15. Volanie metódy by sme potom zapísali napríklad:
var range_1 = akt_list.getRange("C3:F8");
Či už sme vybrali jednu bunku alebo väčšiu časť listu, v oboch prípadoch sa vybraná časť listu nazýva range, česky povedzme oblasť alebo rozsah.
S vybranou časťou listu teraz môžeme pracovať, vložiť do nej dáta, načítať dáta a vykonať s nimi nejaký výpočet, zmazať obsah buniek, nastaviť veľkosť písma i farbu, orámovanie, zarovnanie atď.
Funkcia, ktorá by vybrala práve aktívny bunku v tabuľke, prečítala hodnotu v nej uloženú a nastavila pozadia bunky na červenú farbu, by potom vyzerala napríklad takto:
function myFunction() { var akt_list = SpreadsheetApp.getActiveSheet(); // vybere aktuální list var akt_bunka = akt_list.getCurrentCell(); // vybere aktuálně vybranou buňku var txt = akt_bunka.getValue(); // hodnotu z buňky uloží do proměnné txt akt_bunka.setBackground('red'); // obarví pozadí buňky na červeno }
Tak, máme napísanú prvú funkciu a v ďalšej lekcii, Google Apps Script - Prvé spustenie funkcie , si ukážeme ako ju spustiť.