Tabulky Google je výkonný tabulkový nástroj založený na cloudu, který umožňuje provádět téměř vše, co byste mohli v aplikaci Microsoft Excel udělat. Skutečnou sílou Tabulek Google je však funkce skriptování Google, která s ní přichází.
Skriptování Google Apps je skriptovací nástroj na pozadí, který funguje nejen v Tabulkách Google, ale také Google Docs, Gmail , Google Analytics a téměř všechny ostatní cloudové služby Google. Umožní vám automatizovat tyto jednotlivé aplikace a integrovat každou z nich navzájem.
![](/images/2101/google-sheets-1.png)
V tomto článku se naučíte, jak začít se skriptováním Google Apps, vytvářením základního skriptu v Tabulkách Google pro čtení a zápis dat buněk a nejúčinnějších pokročilých Tabulek Google funkce skriptů.
Jak vytvořit skript Google Apps
Nyní můžete hned začít vytvářet svůj první skript Google Apps z Tabulek Google.
Chcete-li to provést, vyberte z nabídky Nástrojea poté Editor skriptů.
![](/images/2101/google-sheets-script1.jpg.optimal.jpg)
Otevře se okno editoru skriptů a výchozí funkce se nazývá myfunction (). Zde můžete vytvořit a otestovat svůj skript Google.
In_content_1 vše: [300x250] / dfp: [640x360]->Chcete-li dát snímek, zkuste vytvořit skriptovou funkci Tabulek Google, která bude číst data z jedné buňky, provést výpočet v ní a odeslat množství dat do jiné buňky.
Funkce získávání dat z buňky jsou funkce getRange ()a getValue (). Buňku můžete identifikovat podle řádku a sloupce. Takže pokud máte hodnotu v řádku 2 a sloupci 1 (sloupec A), první část skriptu bude vypadat takto:
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); var row = 2; var col = 1; var data = sheet.getRange(row, col).getValue(); }
Tím se hodnota uloží v proměnné data. Můžete provést výpočet dat a pak je zapsat do jiné buňky. Poslední část této funkce tedy bude:
var results = data * 100;sheet.getRange(row, col+1).setValue(results); }
Po dokončení psaní funkce vyberte ikonu disku, kterou chcete uložit.
![](/images/2101/google-sheets-script2.jpg.optimal.jpg)
Při prvním spuštění nová funkce skriptu Tabulek Google (výběrem ikony run), budete muset skriptu spustit ve vašem účtu Google autorizaci.
![](/images/2101/google-sheets-script3.jpg.optimal.jpg)
Povolit pokračování oprávnění. Po spuštění skriptu uvidíte, že skript zapsal výsledky výpočtu do cílové buňky.
![](/images/2101/google-sheets-script4.jpg.optimal.jpg)
Nyní, když víte, jak napsat základní funkci skriptu Google Apps, podívejme se na některé pokročilejší funkce.
Použít getValues k načtení polí
Můžete provést výpočet výpočtů dat v tabulce pomocí skriptování na novou úroveň pomocí polí. Pokud načtete proměnnou do skriptu Google Apps pomocí getValues, proměnná bude maticí, která dokáže načíst z listu více hodnot.
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues();
Datová proměnná je vícerozměrná pole, které obsahuje všechna data z listu. Chcete-li provést výpočet dat, použijte smyčku pro. Počitadlo smyčky for bude fungovat v každém řádku a sloupec zůstává konstantní na základě sloupce, kde chcete data vytáhnout.
V našem příkladu tabulky můžete provádět výpočty na třech řádcích. dat takto:
for (var i = 1; i < data.length; i++) {var result = data[i][0] * 100; sheet.getRange(i+1, 2).setValue(result); } }
Uložte a spusťte tento skript stejně jako výše. Uvidíte, že všechny výsledky jsou vyplněny do tabulky 2 ve vaší tabulce.
![](/images/2101/google-sheets-script5.jpg.optimal.jpg)
Všimněte si, že odkazování na buňku a řádek v proměnné pole je jiné než s funkcí getRange.
data [i] [0]označuje rozměry pole, kde první dimenze je řádek a druhá sloupec. Oba začínají nulou.
getRange (i + 1, 2)označuje druhý řádek, když i = 1 (protože řádek 1 je záhlaví) a 2 je druhý sloupec, ve kterém jsou uloženy výsledky.
Použít appendRow k psaní výsledků
Co když máte tabulku, do které chcete zapsat data do nového řádek místo nového sloupce?
Toto je snadné s funkcí appendRow. Tato funkce nebude obtěžovat žádná existující data v listu. K existujícímu listu připojí pouze nový řádek.
Jako příklad vytvořte funkci, která bude počítat od 1 do 10 a zobrazí počítadlo s násobky 2 v Počítadlo.
Tato funkce by vypadala takto:
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 1; i<11; i++) { var result = i * 2; sheet.appendRow([i,result]); } }
Zde jsou výsledky, když tuto funkci spustíte.
![](/images/2101/google-sheets-script6.jpg.optimal.jpg)
Zpracovávat RSS kanály pomocí URLFetchApp
Mohli byste kombinovat předchozí skriptovou funkci Tabulek Google a URLFetchAppa vytáhnout zdroj RSS z libovolného webu a napsat řádek do tabulky pro každý článek nedávno publikovaný na tomto webu. .
V zásadě jde o kutilskou metodu pro vytvoření vlastní tabulky čtečky RSS kanálů!
Skript, který to provede, není příliš komplikovaný.
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]); } }
Jak vidíte, Xml.parsevytáhne každou položku z kanálu RSS a jednotlivé řádky rozdělí na název, odkaz, datum a popis.
Pomocí funkce appendRowmůžete tyto položky umístit do příslušných sloupců pro každou jednotlivou položku v kanálu RSS.
Výstup v listu bude vypadat něco jako toto:
![](/images/2101/google-sheets-script7.jpg.optimal.jpg)
Místo toho Po vložení adresy URL zdroje RSS do skriptu byste mohli mít v listu pole s adresou URL a pak mít více listů - jeden pro každý web, který chcete sledovat.
Zřetězené řetězce a přidání návratu do vozu
Tabulku RSS můžete udělat ještě o krok dál přidáním některých funkcí pro manipulaci s textem a pomocí e-mailových funkcí můžete poslat e-mail se shrnutím všech nových příspěvků. do zdroje RSS na webu.
Chcete-li to provést, pod skript, který jste vytvořili v předchozí části, budete chtít přidat nějaké skriptování, které extrahuje všechny informace z tabulky.
Budete chtít vytvořit řádek předmětu a text e-mailu tím, že společně analyzujete všechny informace ze stejného pole položek, které jste použili k zápisu dat RSS do tabulky.
Chcete-li to provést, inicializujte předmět a zprávu umístěním následujících řádků před „položky“ pro smyčku.
var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’
Poté na konci "položky" pro smyčku (hned po funkci appendRow), přidejte následující řádek.
message = message + title + '\n' + link + '\n' + date + '\n' + desc + '\n' + '\n \n';
Symbol „+“ zřetězí všechny čtyři položky společně a následuje „\ n “Pro návrat vozíku po každém řádku. Na konci každého bloku s údaji o titulech budete chtít získat dva řádky pro pěkně formátované tělo e-mailu.
Po zpracování všech řádků obsahuje proměnná „tělo“ celý řetězec e-mailové zprávy. Nyní jste připraveni odeslat e-mail!
Jak odeslat e-mail ve skriptu Google Apps
Další částí vašeho skriptu Google bude odeslání „předmět“ a „tělo“ prostřednictvím e-mailu. Udělat to v Google Script je velmi snadné.
var emailAddress = [email protected];
MailApp.sendEmail(emailAddress, subject, message);
MailApp je velmi pohodlná třída uvnitř skriptů Google Apps, která vám umožňuje přístup k e-mailové službě vašeho účtu Google k odesílání nebo přijímání e-maily. Díky tomu vám jediný řádek s funkcí sendEmail umožňuje poslat jakýkoli e-mail pouze s e-mailovou adresou, předmětem a textem těla.
Takto bude vypadat výsledný e-mail. .
![](/images/2101/google-sheets-script8.jpg.optimal.jpg)
Kombinace schopnosti extrahovat RSS kanálu webové stránky, uložte jej do listu Google a odešlete si jej spolu s odkazy na adresy URL, což velmi usnadňuje sledování nejnovějšího obsahu všech webových stránek.
Toto je pouze jeden příklad výkonu je k dispozici ve skriptech Google Apps pro automatizaci akcí a integraci více cloudových služeb.