5 funkcí skriptů Tabulek Google Sheets, které potřebujete vědět


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.

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ů.

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.

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.

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.

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.

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.

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:

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. .

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.

From C to Python by Ross Rheingans-Yoo

Související příspěvky:


16.01.2020