Fogli Google è un potente strumento per fogli di calcolo basato su cloud che ti consente di fare quasi tutto ciò che potresti fare in Microsoft Excel. Ma il vero potere di Fogli Google è la funzione di scripting di Google che ne deriva.
Lo scripting di Google Apps è uno strumento di script in background che funziona non solo in Fogli Google ma anche Google Documenti, Gmail , statistiche di Google e quasi tutti gli altri servizi cloud di Google. Ti consente di automatizzare quelle singole app e di integrare ognuna di queste app l'una con l'altra.
In questo articolo imparerai come iniziare con lo scripting di Google Apps, creando uno script di base in Fogli Google per leggere e scrivere i dati delle celle e i Fogli Google avanzati più efficaci funzioni di script.
Come creare uno script di Google Apps
Puoi iniziare subito creando il tuo primo script di Google Apps da Fogli Google.
Per fare ciò, seleziona Strumentidal menu, quindi Editor di script.
Questo apre la finestra dell'editor di script e imposta automaticamente una funzione chiamata myfunction (). Qui puoi creare e testare il tuo script di Google.
In_content_1 all: [300x250] / dfp: [640x360]->Per provarlo, prova a creare una funzione di script di Fogli Google che leggerà i dati da una cella, eseguirà un calcolo su di essa e fornirà la quantità di dati a un'altra cella.
La funzione per ottenere dati da una cella sono le funzioni getRange ()e getValue (). È possibile identificare la cella per riga e colonna. Quindi se hai un valore nella riga 2 e nella colonna 1 (la colonna A), la prima parte del tuo script sarà simile a questa:
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); var row = 2; var col = 1; var data = sheet.getRange(row, col).getValue(); }
Questo memorizza il valore da quello cella nella variabile dati. È possibile eseguire un calcolo sui dati e quindi scrivere quei dati in un'altra cella. Quindi l'ultima parte di questa funzione sarà:
var results = data * 100;sheet.getRange(row, col+1).setValue(results); }
Al termine della scrittura della funzione, selezionare l'icona del disco da salvare.
La prima volta che esegui una nuova funzione di script di Fogli Google come questa (selezionando l'icona di esecuzione), dovrai fornire l'autorizzazione per l'esecuzione dello script sul tuo account Google.
Consenti permessi per continuare. Una volta eseguito lo script, vedrai che lo script ha scritto i risultati del calcolo nella cella di destinazione.
Ora che sai come scrivere una funzione di script di Google Apps di base, diamo un'occhiata ad alcune funzioni più avanzate.
Usa getValues per caricare array
Puoi portare il concetto di fare calcoli sui dati nel tuo foglio di calcolo con scripting a un nuovo livello usando gli array. Se carichi una variabile nello script di Google Apps utilizzando getValues, la variabile sarà un array che può caricare più valori dal foglio.
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues();
La variabile di dati è multidimensionale array che contiene tutti i dati dal foglio. Per eseguire un calcolo sui dati, utilizzare un ciclo per. Il contatore del ciclo for funzionerà attraverso ogni riga e la colonna rimane costante, in base alla colonna in cui si desidera estrarre i dati.
Nel nostro foglio di calcolo di esempio, è possibile eseguire calcoli sulle tre righe di dati come segue.
for (var i = 1; i < data.length; i++) {var result = data[i][0] * 100; sheet.getRange(i+1, 2).setValue(result); } }
Salva ed esegui questo script come hai fatto sopra. Vedrai che tutti i risultati vengono inseriti nella colonna 2 del foglio di calcolo.
Noterai che fare riferimento a una cella e una riga in una variabile di matrice è diverso rispetto a una funzione getRange.
data [i] [0]si riferisce alle dimensioni dell'array in cui la prima dimensione è la riga e la seconda è la colonna. Entrambi iniziano da zero.
getRange (i + 1, 2)si riferisce alla seconda riga quando i = 1 (poiché la riga 1 è l'intestazione) e 2 è la seconda colonna in cui sono archiviati i risultati.
Usa appendRow per scrivere i risultati
Che cosa succede se si dispone di un foglio di calcolo in cui si desidera scrivere i dati in un nuovo riga anziché una nuova colonna?
Questo è facile da fare con la funzione appendRow. Questa funzione non disturberà alcun dato esistente nel foglio. Aggiungerà semplicemente una nuova riga al foglio esistente.
Ad esempio, crea una funzione che conterà da 1 a 10 e mostrerà un contatore con multipli di 2 in un Contatore.
Questa funzione sarebbe simile a questa:
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 1; i<11; i++) { var result = i * 2; sheet.appendRow([i,result]); } }
Ecco i risultati quando si esegue questa funzione.
Elaborazione di feed RSS con URLFetchApp
È possibile combinare la precedente funzione di script di Fogli Google e URLFetchAppper estrarre il feed RSS da qualsiasi sito Web e scrivere una riga in un foglio di calcolo per ogni articolo recentemente pubblicato su quel sito Web .
Questo è fondamentalmente un metodo fai-da-te per creare il tuo foglio di calcolo del lettore di feed RSS!
Anche lo script per farlo non è troppo complicato.
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]); } }
Come puoi vedere, Xml.parseestrae ogni elemento dal feed RSS e separa ogni riga in titolo, collegamento, data e descrizione.
Usando la funzione appendRow, puoi inserire questi elementi nelle colonne appropriate per ogni singolo elemento nel feed RSS.
L'output nel tuo foglio apparirà qualcosa del genere:
Invece di incorporare l'URL del feed RSS nello script, potresti avere un campo nel tuo foglio con l'URL e quindi avere più fogli, uno per ogni sito Web che desideri monitorare.
Concatena stringhe e aggiungi un ritorno a capo
Potresti portare il foglio di calcolo RSS un ulteriore passo in avanti aggiungendo alcune funzioni di manipolazione del testo, quindi utilizzare le funzioni e-mail per inviarti un'e-mail con un riepilogo di tutti i nuovi post nel feed RSS del sito.
Per fare ciò, sotto lo script che hai creato nella sezione precedente, ti consigliamo di aggiungere alcuni script che estrarranno tutte le informazioni nel foglio di calcolo.
Ti consigliamo di creare l'oggetto e il corpo del testo dell'email analizzando insieme tutte le informazioni dallo stesso array di "elementi" che hai usato per scrivere i dati RSS sul foglio di calcolo.
Per fare ciò, inizializza l'oggetto e il messaggio posizionando le seguenti righe prima degli "elementi" For loop.
var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’
Quindi, alla fine di gli "elementi" per il ciclo (subito dopo la funzione appendRow), aggiungi la seguente riga.
message = message + title + '\n' + link + '\n' + date + '\n' + desc + '\n' + '\n \n';
Il simbolo "+" concatenerà tutti e quattro gli elementi insieme seguiti da "\ n "Per un ritorno a capo dopo ogni riga. Alla fine di ogni blocco di dati del titolo, avrai bisogno di due ritorni a capo per un corpo email ben formattato.
Una volta elaborate tutte le righe, la variabile "body" contiene l'intera stringa del messaggio email. Ora sei pronto per inviare l'e-mail!
Come inviare e-mail nello script di Google Apps
La prossima sezione di Google Script sarà l'invio l '"oggetto" e il "corpo" via e-mail. Farlo in Google Script è molto semplice.
var emailAddress = [email protected];
MailApp.sendEmail(emailAddress, subject, message);
MailApp è una classe molto conveniente all'interno degli script di Google Apps che ti consente di accedere al servizio di posta elettronica del tuo account Google per inviare o ricevere messaggi di posta elettronica. Grazie a ciò, la singola riga con la funzione sendEmail ti consente di invia qualsiasi email con solo l'indirizzo e-mail, l'oggetto e il testo del corpo.
Ecco come apparirà l'e-mail risultante .
Combinazione della capacità di estrarre un feed RSS di un sito Web, archiviarlo in un foglio Google e inviarlo a te stesso con i collegamenti URL inclusi, rende molto conveniente seguire gli ultimi contenuti per qualsiasi sito Web.
Questo è solo un esempio della potenza disponibile negli script di Google Apps per automatizzare le azioni e integrare più servizi cloud.