Lekce 1 - Úvod do Google Apps Script
Google Suite je sada cloudových nástrojů pro firmy i jednotlivce, určitě z nich znáte alespoň Gmail. Je jich samozřejmě mnohem více, Disk pro uložení souborů, Kalendář, Dokumenty, Tabulky, Prezentace, Fotky, Formuláře, Hangouts nebo Chat pro komunikaci a další.
Google Apps Script (často se můžete setkat se zkratkou GAS) je jednoduchý skriptovací jazyk založený na JavaScriptu, pomocí kterého se řada částí G Suite dá ovládat a vylepšovat.
Můžete jej použít na drobnosti, které vám ale při práci s G Suite mohou ušetřit spoustu času a práce. A samozřejmě nemusíte zůstat u drobností, v Apps Scriptu můžete dělat plnohodnotné aplikace a využít jeho propojení na další cloudové služby Google.
Příklady využití
Ukažme si několik příkladů využití této technologie:
Příklad 1
Denně vám z několika adres chodí e-mail, který v příloze obsahuje CSV soubor. Vy musíte data z CSV souborů importovat do Tabulek. Stejnou práci zastane i skript. Bude pravidelně kontrolovat vaši příchozí poštu a pokud přijde e-mail z konkrétní adresy a bude obsahovat v příloze CSV soubor, skript přílohu uloží na Disk a importuje data z přílohy do Tabulky.
Příklad 2
Na webu používáte Google Formulář, ale musíte denně kontrolovat, zda někdo formulář využil a případně na jeho zprávu reagovat. Formulář se dá snadno doplnit o skript, který se automaticky spustí ve chvíli, kdy je formulář odeslán. Skript vám může na e-mail zaslat upozornění, že někdo formulář použil. Kromě toho může zákazníkovi na jeho e-mail (který zadal do formuláře) zaslat poděkování a rekapitulaci jeho odpovědí.
Potřebné nástroje
Co pro první pokusy s Google Apps Scriptem potřebujete?
- Google účet - postačí zdarma dostupná verze. Zřídit účet si můžete na adrese https://accounts.google.com/SignUp?…
- alespoň základní znalost angličtiny, chybové hlášky i dokumentace jsou v angličtině
- hodí se jakékoliv zkušenosti s programováním
Začínáme
Přihlaste se do svého Google účtu, otevřete si aplikaci Disk a jdeme na to.
Nejdříve maličko teorie. Skripty, které budete vytvářet, mohou být buď jako samostatné soubory na Disku, nebo mohou být součástí Tabulek, Dokumentů nebo třeba Formulářů (v nápovědě je najdete pod termínem bounded).
Oba dva druhy mohou dělat v zásadě totéž, ale je lepší skryté skripty používat v případě, že opravdu pracují s jednou konkrétní tabulkou nebo dokumentem. Pokud se má skript používat pro různé dokumenty, je rozhodně lepší mít ho jako samostatný soubor.
Skripty napsané v GAS běží na serveru, ne v prohlížeči. Později si ukážeme, že je možné napsat skripty, které budou mít část běžící v prohlížeči (napsanou v JavaScriptu) a druhou část běžící na serveru (napsanou v GAS) a obě části spolu mohou komunikovat.
Bounded skript pro tabulku
Jako první si ukážeme jak vytvořit bounded skript pro tabulku.
Vytvořte na Disku novou tabulku, pojmenujte ji Příklad 1
a v
menu zvolte Nástroje - Editor skriptu. Otevře se vám nová
záložka s editorem, ve které budete psát svůj první skript. Nejprve je
potřeba skript pojmenovat. Vlevo nahoře klikněte na text Projekt bez
názvu a zadejte nějaký název, třeba opět
Příklad 1
. Na názvu nezáleží, ale pokud máte otevřenou
tabulku a na druhé záložce k ní přibalený skript, je dobré poznat na
první pohled, že k sobě patří.
Editor by teď měl vypadat nějak takto:

Než začneme psát náš první skript, tak opět pár poznámek. V Apps Scriptu máte k dispozici mnoho knihoven, každá slouží k práci s jinou částí Google Suite. Nemusíte si jejich názvy pamatovat, pokud v Editoru skriptů stisknete Ctrl + Mezerník, zobrazí se vám jejich seznam, ze kterého knihovnu vyberete a stiskem Enter vložíte její název do Editoru.
Obdobně pak v dalším kroku vyberete metodu, čili co by měla knihovna provést. Pokud máte seznam knihoven nebo metod zobrazený a znáte název, který chcete vybrat, stiskněte odpovídající znaky na klávesnici, abyste se v seznamu dostali na požadované místo.
Náš první skript by měl pracovat s tabulkou a na to budeme potřebovat
knihovnu s názvem SpreadsheetApp
. Takže si stiskem
Ctrl + Mezerník zobrazte seznam knihoven, poté
stiskněte první písmena názvu knihovny, tedy SP, a
stiskněte Enter, název knihovny se vám vloží do editoru. Pokud
hned za název knihovny doplníte tečku, nabídne se seznam metod, které lze
zavolat.
Knihovnu máme, teď potřebujeme nějak vybrat tabulku, se kterou chceme
pracovat. Protože je skript přibalený k tabulce Příklad 1
,
můžeme pro její výběr použít metodu getActive()
, čili vezmi
právě aktivní tabulku. Metodu vybereme ze seznamu, který se nám nabídne po
doplnění tečky za název knihovny.
Tím jsme získali tabulku, která ale může mít mnoho listů. Momentálně
vybraný list opět získáme podobně jako celou tabulku, tentokrát metodou
getActiveSheet()
.
Funkce myFunction()
pak může vypadat třeba takto:
function myFunction() { var akt_tab = SpreadsheetApp.getActive(); var akt_list = akt_tab.getActiveSheet(); }
V proměnné akt_tab
máme celou tabulku, v proměnné
akt_list
právě vybraný list. Oba řádky můžeme spojit do
jednoho a v jednom kroku vybrat přímo aktivní list, tedy napsat:
var akt_list = SpreadsheetApp.getActive().getActiveSheet();
Výběr aktivního listu lze vynechat a můžeme přímo vybrat aktivní list, takto:
var akt_list = SpreadsheetApp.getActiveSheet();
List bychom vybraný měli, teď zkusíme vybrat na listu nějakou buňku.
Pokud budeme chtít pracovat s buňkou, která je momentálně vybraná,
použijeme metodu getActiveCell()
. Tu musíme zavolat pro správný
objekt, tedy list, protože buňka je součástí listu:
var akt_bunka = akt_list.getActiveCell();
Pokud bychom chtěli vybrat jinou než aktivní buňku, použili bychom
metodu getRange()
. Parametry getRange()
můžeme zadat
několika způsoby:
var range_1 = akt_list.getRange(1, 2);
První parametr je číslo řádku, druhý číslo sloupce. Řádky i sloupce se číslují od jedničky, tímto příkazem bychom tedy vybrali buňku B1. Pro výběr větší oblasti přidáme další 2 parametry, počet řádků a počet sloupců. Takto bychom vybrali oblast buněk B1:C3.
var range_1 = akt_list.getRange(1, 2, 3, 2);
Poslední možností jak oblast, kterou chceme, vybrat, je právě zápis ve tvaru C5:E15. Volání metody bychom pak zapsali například:
var range_1 = akt_list.getRange("C3:F8");
Ať už jsme vybrali jednu buňku nebo větší část listu, v obou případech se vybraná část listu nazývá range, česky řekněme oblast nebo rozsah.
S vybranou částí listu teď můžeme pracovat, vložit do ní data, načíst data a provést s nimi nějaký výpočet, smazat obsah buněk, nastavit velikost písma i barvu, orámování, zarovnání atd.
Funkce, která by vybrala právě aktivní buňku v tabulce, přečetla hodnotu v ní uloženou a nastavila pozadí buňky na červenou barvu, by pak vypadala třeba 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 napsanou první funkci a zde tuto lekci ukončíme
V další lekci, Google Apps Script - První spuštění funkce, si zkusíme ručně pustit první funkci.