top of page
blog_zahlavi_pozadi_00.jpg

Blog

Obrázek autoraJan Hora

Lekce 1 – Úvod do Google Apps Script

Aktualizováno: 3. 11. 2020

Google Workspace (dříve G 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í Google Workspace dá ovládat a vylepšovat.

Můžete jej použít na drobnosti, které Vám ale při práci s Google Workspace 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ů, jak Apps Script využít.

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 ideálně s JavaScriptem. Pokud budete něco vědět o HTML, bude to ještě lepší.

Začínáme

Přihlaste se do svého Google účtu, otevřete 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ší bounded 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 Apps Scriptu 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 Apps Scriptu) 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 Workspace. Přes Nápověda - Referenční informace k API můžete otevřít stránku, kde o všech knihovnách a jejich metodách najdete úplně všechno. Nápověda je samozřejmě v angličtině. Názvy knihoven nemusíte do editoru ručně vypisovat, kombinace Ctrl + Mezerník, se vám zobrazí 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 Vám 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. Opět nemusíte ručně vypisovat, ale stačí metodu vybrat 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();

Zápis lze ještě zkrátit, 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, například takto.

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 vybrat oblast kterou chceme, je právě zápis ve tvaru B1:C3. Volání metody bychom pak zapsali například:

var range_1 = akt_list.getRange(“B1:C3“);

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 například takto.


function myFunction()

{

var akt_list = SpreadsheetApp.getActiveSheet();

var akt_bunka = akt_list.getCurrentCell();

var txt = akt_bunka.getValue();

akt_bunka.setBackground( 'red' );

}


Tak, máme napsanou první funkci a v další lekci si ukážeme, jak ji spustit.




Comments


bottom of page