5 Google Sheets -skriptitoimintoa, jotka sinun on tiedettävä

Google Sheets on tehokas pilvipohjainen taulukkolaskentatyökalu, jonka avulla voit tehdä melkein kaiken, mitä voit tehdä Microsoft Excelissä(Microsoft Excel) . Mutta Google Sheetsin(Google Sheets) todellinen voima on sen mukana tuleva Google Scripting -ominaisuus.

Google Apps -skriptaus on taustalla käytettävä komentosarjatyökalu, joka toimii Google Sheetsin(in Google Sheets) lisäksi Google Docsissa, Gmailissa, Google Analyticsissa(Google Analytics) ja lähes kaikissa muissa Googlen(Google) pilvipalveluissa. Sen avulla voit automatisoida yksittäiset sovellukset ja integroida kaikki nämä sovellukset toisiinsa.

Tässä artikkelissa opit pääsemään alkuun Google Apps -skriptien kanssa , luomaan perusskriptin Google Sheetsissä(Google Sheets) solutietojen lukemista ja kirjoittamista varten sekä tehokkaimmista edistyneistä Google Sheets -skriptitoiminnoista.

Google Apps -skriptin luominen(How to Create a Google Apps Script)

Voit aloittaa heti ensimmäisen Google Apps -ohjelman luomisen (Google Apps)Google Sheetsin(Google Sheets) sisällä . 

Voit tehdä tämän valitsemalla valikosta Työkalut(Tools) ja sitten Script Editor .

Tämä avaa komentosarjaeditori-ikkunan ja käyttää oletuksena funktiota nimeltä myfunction() . Täällä voit luoda ja testata Google-skriptiäsi(Google Script) .

Kokeile luoda Google Sheets -skriptitoiminto, joka lukee tiedot yhdestä solusta, suorittaa laskelman ja tulostaa datamäärän toiseen soluun.

Funktio datan saamiseksi solusta on getRange() - ja getValue()- funktiot. Voit tunnistaa solun rivin ja sarakkeen mukaan. Joten jos sinulla on arvo rivillä 2 ja sarakkeessa 1 (A-sarake), skriptin ensimmäinen osa näyttää tältä:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var row = 2;
   var col = 1;
   var data = sheet.getRange(row, col).getValue();
}

Tämä tallentaa arvon kyseisestä solusta datamuuttujaan(data) . Voit suorittaa laskennan tiedoille ja kirjoittaa tiedot sitten toiseen soluun. Joten tämän toiminnon viimeinen osa on:

   var results = data * 100;
   sheet.getRange(row, col+1).setValue(results);
}

Kun olet kirjoittanut funktion, valitse levykuvake tallentaaksesi. 

Kun suoritat ensimmäisen kerran tällaisen uuden Google Sheets -skriptitoiminnon (valitsemalla suorituskuvakkeen), sinun on annettava valtuutus(Authorization) , jotta skripti voidaan suorittaa Google-tililläsi(Google Account) .

Salli luvat jatkaa. Kun komentosarja on suoritettu, näet, että komentosarja kirjoitti laskentatulokset kohdesoluun.

Nyt kun osaat kirjoittaa Google Appsin(Google Apps) perusskriptitoiminnon, katsotaanpa joitain edistyneempiä toimintoja.

Käytä getValueita taulukoiden lataamiseen(Use getValues To Load Arrays)

Voit viedä käsitteen laskea laskentataulukon tiedoista komentosarjan avulla uudelle tasolle käyttämällä taulukoita. Jos lataat muuttujan Google Apps -skriptiin getValuesilla, muuttuja on taulukko, joka voi ladata useita arvoja taulukosta.

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var data = sheet.getDataRange().getValues();

Tietomuuttuja on moniulotteinen taulukko, joka sisältää kaikki taulukon tiedot. Suorittaaksesi datan laskennan, käytät for- silmukkaa. For-silmukan laskuri toimii jokaisen rivin läpi, ja sarake pysyy vakiona sen sarakkeen mukaan, johon haluat vetää tiedot.

Esimerkkilaskentataulukossamme voit suorittaa laskelmia kolmelle tietoriville seuraavasti.

for (var i = 1; i < data.length; i++) {
   var result = data[i][0] * 100;
   sheet.getRange(i+1, 2).setValue(result); 
   }
}

Tallenna(Save) ja suorita tämä komentosarja aivan kuten teit yllä. Näet, että kaikki tulokset on täytetty laskentataulukon sarakkeeseen 2.

Huomaat, että soluun ja riviin viittaaminen taulukkomuuttujassa on erilaista kuin getRange-funktiolla. 

data[i][0] viittaa taulukon mittoihin, joissa ensimmäinen ulottuvuus on rivi ja toinen sarake. Molemmat alkavat nollasta.

getRange(i+1, 2) viittaa toiseen riviin, kun i=1 (koska rivi 1 on otsikko), ja 2 on toinen sarake, johon tulokset tallennetaan.

Käytä appendRow-komentoa tulosten kirjoittamiseen(Use appendRow To Write Results)

Entä jos sinulla on laskentataulukko, johon haluat kirjoittaa tiedot uudelle riville uuden sarakkeen sijaan?

Tämä on helppo tehdä appendRow- toiminnolla. Tämä toiminto ei häiritse taulukossa olevia tietoja. Se vain lisää uuden rivin olemassa olevaan taulukkoon.

Tee esimerkiksi funktio, joka laskee 1:stä 10:een ja näyttää laskurin, jossa on 2:n kerrannainen Laskuri(Counter) - sarakkeessa.

Tämä toiminto näyttäisi tältä:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();

   for (var i = 1; i<11; i++) {
      var result = i * 2;
     sheet.appendRow([i,result]);
   }
}

Tässä ovat tulokset, kun suoritat tämän toiminnon.

Käsittele RSS-syötteitä URLFetchAppilla(Process RSS Feeds With URLFetchApp)

Voit yhdistää aiemman Google Sheets -skriptitoiminnon ja URLFetchApp - sovelluksen RSS - syötteen hakemiseksi mistä tahansa verkkosivustosta ja kirjoittaa rivin laskentataulukkoon jokaisesta kyseisellä verkkosivustolla äskettäin julkaistusta artikkelista.

Tämä on pohjimmiltaan DIY -menetelmä oman RSS - syötteenlukijataulukon luomiseen!

Käsikirjoitus tämän tekemiseen ei myöskään ole liian monimutkainen.

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]);
}
}

Kuten näet, Xml.parse vetää jokaisen kohteen pois RSS - syötteestä ja erottaa jokaisen rivin otsikoksi, linkiksi, päivämääräksi ja kuvaukseksi. 

AppendRow- funktion avulla(appendRow) voit sijoittaa nämä kohteet sopiviin sarakkeisiin jokaiselle RSS - syötteen kohteelle.

Arkin tuloste näyttää suunnilleen tältä:

Sen sijaan, että upottaisit RSS - syötteen URL -osoitteen skriptiin, taulukossasi voisi olla kenttä, jossa on URL -osoite ja sitten useita taulukoita – yksi jokaiselle valvottavalle verkkosivustolle.

Liitä merkkijonot(Concatenate Strings) ja lisää(Add) vaunun palautus(Carriage Return)

Voit viedä RSS - laskentataulukkoa askeleen pidemmälle lisäämällä tekstinkäsittelytoimintoja ja sitten lähettää itsellesi sähköpostin, jossa on yhteenveto kaikista sivuston RSS - syötteen uusista viesteistä.

Voit tehdä tämän lisäämällä edellisessä osiossa luomasi skriptin alle komentosarjan, joka poimii kaikki laskentataulukon tiedot. 

Haluat luoda aiherivin ja sähköpostin tekstiosan jäsentämällä yhteen kaikki tiedot samasta "kohteet"-taulukosta, jolla kirjoitit RSS -tiedot laskentataulukkoon. 

Tee tämä alustamalla aihe ja viesti asettamalla seuraavat rivit For-silmukan eteen.

var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’

Lisää sitten seuraava rivi silmukan "items" loppuun (aiemmin appendRow-funktion jälkeen).

message = message + title + '\n' + link + '\n' + date + '\n' + desc + '\n' + '\n \n';

"+" -symboli yhdistää kaikki neljä kohdetta ja sen jälkeen " " rivinvaihtoa varten jokaisen rivin jälkeen. Jokaisen otsikkotietolohkon lopussa haluat kaksi rivinvaihtoa saadaksesi kauniisti muotoillun sähköpostin rungon.

Kun kaikki rivit on käsitelty, "body"-muuttuja sisältää koko sähköpostiviestin merkkijonon. Nyt olet valmis lähettämään sähköpostin!

Sähköpostin lähettäminen Google Apps Scriptissa(How To Send Email In Google Apps Script)

Google-skriptin(Google Script) seuraava osa on lähettää "aihe" ja "teksti" sähköpostitse. Tämän tekeminen Google Scriptissa(Google Script) on erittäin helppoa.

var emailAddress = [email protected];
MailApp.sendEmail(emailAddress, subject, message);

MailApp on erittäin kätevä Google Apps -skriptien(MailApp) luokka, jonka avulla voit käyttää Google-tilisi sähköpostipalvelua sähköpostien lähettämistä ja vastaanottamista varten. Tämän ansiosta yhdellä rivillä, jossa on sendEmail-toiminto, voit lähettää minkä tahansa sähköpostin(send any email) , jossa on vain sähköpostiosoite, aiherivi ja leipäteksti.

Tuloksena oleva sähköposti näyttää tältä. 

Kun yhdistät mahdollisuuden poimia verkkosivuston RSS - syöte, tallentaa se Google-taulukkoon(Google Sheet) ja lähettää sen itsellesi URL - linkkien kanssa, on erittäin kätevää seurata minkä tahansa verkkosivuston uusinta sisältöä.

Tämä on vain yksi esimerkki Google Apps -skriptien tehosta automatisoida toimintoja ja integroida useita pilvipalveluita.



About the author

Olen kokenut Windows 10- ja Windows 11/10 -järjestelmänvalvoja, jolla on kokemusta Edgestä. Minulla on runsaasti tietoa ja kokemusta tarjottavana tällä alalla, minkä vuoksi uskon, että osaamisestani on hyötyä yrityksellesi. Vuosien kokemukseni sekä Windows 10:stä että Edgestä antaa minulle mahdollisuuden oppia nopeasti uusia tekniikoita, ratkaista ongelmia nopeasti ja ottaa vastuuta yrityksesi johtamisesta. Lisäksi kokemukseni Windows 10:stä ja Edgestä tekevät minut erittäin perehtyneeksi käyttöjärjestelmän kaikista näkökohdista, mikä olisi hyödyllistä palvelimien hallinnassa tai ohjelmistosovellusten hallinnassa.



Related posts