5 funcții de script de fișiere Google pe care trebuie să le cunoașteți


Google Sheets este un instrument puternic de calcul bazat pe cloud care vă permite să faceți aproape tot ce ați putea face în Microsoft Excel. Dar puterea reală a foilor de calcul Google este caracteristica Google Scripting care vine cu ea.

Scripturile Google Apps este un instrument de script de fundal care funcționează nu numai în foi de calcul Google, ci și Google Docs, Gmail. , Google Analytics și aproape orice alt serviciu Google de cloud. Vă permite să automatizați acele aplicații individuale și să integrați fiecare dintre aceste aplicații una cu cealaltă.

12

În acest articol veți învăța cum să începeți scripturile Google Apps, creând un script de bază în foi de calcul Google pentru a citi și scrie date celulare și cele mai eficiente fișiere Google avansate. funcții de script.

Cum să creați un script Google Apps

Puteți începe chiar acum creând primul script Google Apps din interiorul foilor Google.

Pentru a face acest lucru, selectați Instrumentedin meniu, apoi Script Editor.

Aceasta deschide fereastra editorului de scripturi și implicită o funcție numită myfunction (). Aici puteți crea și testa Google Script.

In_content_1 all: [300x250] / dfp: [640x360]->

Pentru a da o lovitură, încercați să creați o funcție de script Google Sheets care va citi datele dintr-o celulă, efectuați un calcul pe ea și trimiteți cantitatea de date într-o altă celulă.

Funcția de a obține date dintr-o celulă este funcțiile getRange ()și getValue (). Puteți identifica celula după rând și coloană. Așadar, dacă aveți o valoare în rândul 2 și coloana 1 (coloana A), prima parte a scriptului va arăta astfel:

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

Aceasta stochează valoarea din acea celula din variabila date. Puteți efectua un calcul pe date, apoi puteți scrie datele într-o altă celulă. Prin urmare, ultima parte a acestei funcții va fi:

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

După ce ați terminat să scrieți funcția, selectați pictograma de disc pe care să o salvați.

Prima dată când executați o nouă funcție de script Google Sheets ca aceasta (prin selectarea pictogramei rulate), va trebui să furnizați Autorizarea pentru scriptul care să fie difuzat pe contul dvs. Google.

Permite continuarea permisiunilor. După ce scriptul dvs. va fi executat, veți vedea că scriptul a scris rezultatele calculului în celula țintă.

Acum că știi cum să scrii o funcție de bază Google script script, să aruncăm o privire la unele funcții mai avansate.

Utilizarea getValues ​​pentru încărcarea diagramelor

Puteți lua conceptul de a face calcule pe datele din foaia de calcul cu scripturi la un nou nivel, utilizând tablouri. Dacă încărcați o variabilă în scriptul Google Apps folosind getValues, variabila va fi un tablou care poate încărca mai multe valori din foaie.

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

Variabila de date este o multidimensională tablou care conține toate datele din foaie. Pentru a efectua un calcul pe date, utilizați o buclă pentru. Contorul buclei for va funcționa pe fiecare rând, iar coloana rămâne constantă, pe baza coloanei de unde doriți să trageți datele.

În foaia de calcul de exemplu, puteți efectua calcule pe cele trei rânduri de date după cum urmează.

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

Salvați și rulați acest script la fel cum ați făcut mai sus. Veți vedea că toate rezultatele sunt completate în coloana 2 din foaia de calcul.

Veți observa că referința la o celulă și un rând într-o variabilă matrice este diferită de cea cu o funcție getRange.

date [i] [0]se referă la dimensiunile tabloului, unde prima dimensiune este rândul, iar a doua este coloana. Ambele încep de la zero.

getRange (i + 1, 2)se referă la al doilea rând când i = 1 (deoarece rândul 1 este antetul), iar 2 este a doua coloană în care sunt stocate rezultatele.

Utilizați appendRow To Write Results

Ce se întâmplă dacă aveți o foaie de calcul în care doriți să scrieți date într-o nouă rând în loc de o nouă coloană?

Acest lucru este ușor de făcut cu funcția appendRow. Această funcție nu va deranja date existente în foaie. Va adăuga doar un nou rând la foaia existentă.

Ca exemplu, creează o funcție care va conta de la 1 la 10 și va arăta un contor cu multipli de 2 într-un contorcolumn.

Această funcție ar arăta astfel:

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

Iată rezultatele când executați această funcție.

Procesarea fluxurilor RSS cu URLFetchApp

Puteți combina funcția de script Google Sheets anterioară și URLFetchApppentru a trage fluxul RSS de pe orice site web și a scrie un rând într-o foaie de calcul pentru fiecare articol publicat recent pe site-ul respectiv .

Aceasta este practic o metodă DIY pentru a crea propriul fișă de calcul pentru cititorul de flux RSS!

Scriptul pentru a face acest lucru nici nu este prea complicat.

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

După cum vedeți, Xml.parsescoate fiecare articol din fluxul RSS și separă fiecare linie în titlu, link, dată și descriere.

Utilizând funcția appendRow, puteți pune aceste elemente în coloane corespunzătoare pentru fiecare articol din fluxul RSS.

Rezultatele din foaia dvs. vor arăta ceva de genul acesta:

În schimb de încorporarea adresei URL a fluxului RSS în script, puteți avea un câmp din foaia dvs. cu URL-ul, apoi aveți mai multe foi - unul pentru fiecare site web pe care doriți să îl monitorizați.

Concatenate șiruri și adăugarea unui transport de retur

Puteți face o foaie de calcul RSS un pas mai departe adăugând unele funcții de manipulare a textului, apoi utilizați funcții de e-mail pentru a vă trimite un e-mail cu un rezumat al tuturor postărilor noi în RSS feed-ul site-ului.

Pentru a face acest lucru, sub scriptul pe care l-ați creat în secțiunea anterioară, veți dori să adăugați niște scripturi care vor extrage toate informațiile din foaia de calcul.

Vei dori să creezi linia subiectului și corpul textului de e-mail, analizând împreună toate informațiile din același tablou „elemente” pe care l-ai folosit pentru a scrie datele RSS în foaia de calcul.

Pentru a face acest lucru, inițializați subiectul și mesajul plasând următoarele linii înainte de „elemente” pentru buclă.

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

Apoi, la sfârșitul „itemii” pentru buclă (imediat după funcția appendRow), adăugați următoarea linie.

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

Simbolul „+” va concatena toate cele patru elemente împreună urmate de „\ n ”Pentru o întoarcere a trăsurii după fiecare linie. La sfârșitul fiecărui bloc de date din titlu, veți dori două retururi de transport pentru un corp de e-mail formatat frumos.

După ce toate rândurile sunt procesate, variabila „body” deține întregul șir de mesaje de e-mail. Acum sunteți gata să trimiteți e-mailul!

Cum să trimiteți e-mail în scriptul Google Apps

Următoarea secțiune a scriptului Google va fi de trimis „subiectul” și „corpul” prin e-mail. Efectuarea acestui lucru în Google Script este foarte ușoară.

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

MailApp este o clasă foarte convenabilă din scripturile Google Apps care vă oferă acces la serviciul de e-mail al Contului Google pentru a trimite sau primi e-mailuri. Datorită acestui lucru, o singură linie cu funcția sendEmail vă permite trimiteți orice e-mail doar cu adresa de e-mail, linia de subiect și textul corpului.

Acesta este aspectul e-mailului rezultat .

Combinând capacitatea de a extrage RSS feed-ul unui site, stochează-l într-o foaie Google și trimite-ți-o cu link-uri URL incluse, face foarte convenabil să urmărești cel mai recent conținut pentru orice site web.

Acesta este doar un exemplu de putere asta este disponibil în scripturile Google Apps pentru automatizarea acțiunilor și integrarea mai multor servicii cloud.

Linux Tutorial for Beginners: Introduction to Linux Operating System

Postări asemănatoare:


16.01.2020