[apps script] Inviare tramite Gmail un’email con allegato da Drive

Questo esempio è la prosecuzione di quanto già visto in [apps script] Inviare tramite Gmail un’email ad un elenco di contatti in Spreadsheet

Voglio apportare solo una piccola modifica al codice per inviare un allegato salvato su Google Drive a tutti i soggetti nella lista. Per i riferimenti di programmazione rimando alla pagina della guida ufficiale.

Per prelevare un file da Google Drive dobbiamo anzitutto ottenere il suo riferimento univoco. Per farlo ci sono diversi modi, nel mio esempio utilizzerò un file pdf come questo qua. Anzitutto lo carico su Drive e poi cliccandoci sopra col destro scelgo Anteprima.

Dal menu in alto a destra seleziono Apri in un’altra finestra.

A questo punto nella barra dell’indirizzo vedrò qualcosa come https://drive.google.com/file/d/1234567890abcdefghijklmnopqrstuvwxyz/view

Copio il codice alfanumerico che ho evidenziato in rosso, che è l’identificativo univoco per ciascun file. Una volta copiato vado a modificare il mio codice nel modo seguente.

In particolare con la prima istruzione aggiunta prelevo il file da Drive, cosa che richiederà dei permessi aggiuntivi.

Mentre con file.getAs(MimeType.PDF) creo il blob del file in formato PDF.

Fatto questo il mio nuovo script invia un’email a ciascun membro della lista con allegato il suddetto file.

Vedi articolo

[apps script] Aggiungere un nuovo foglio a Spreadsheet controllando quelli esistenti

Vediamo come costruire una funzione che ci permetta di creare da apps script un nuovo foglio su spreadsheet ed aggiungerlo a quelli esistenti.

Notiamo che per prendere il riferimento alla cartella esistente utilizziamo:

Il nome del foglio lo vogliamo gestire nel modo seguente: se il nome che stiamo cercando di aggiungere esiste già, allora posponiamo al nome un contatore numerico scritto come (1), (2)… (n). In pratica se esiste già un foglio chiamato Primo Foglio, allora il foglio aggiunto sarà Primo Foglio (1), se esistono entrambi sarà Primo Foglio (2) ecc.

Infine restituiamo il riferimento al foglio appena creato con:

 

Vedi articolo

[apps script] Creiamo una funzione personalizzata che esegua la somma sull’intervallo di uno Spreadsheet

Oggi vediamo come creare una funzione per Spreadsheet con Google Apps Script che permetta di sommare tutti gli elementi di un intervallo passato per argomento, al pari della funzione SUM().

Faccio notare che abbiamo usato parseFloat() su tutti i valori, in modo che se venissero passati valori non numeri la funzione restituirebbe #NUM!.

Una volta inserita la funzione nello script possiamo testarla nel modo seguente:

Vedi articolo

[apps script] Inviare tramite Gmail un’email ad un elenco di contatti in Spreadsheet

Immaginiamo di avere in Spreadsheet un elenco di indirizzi email a cui vogliamo inviare un messaggio personalizzato.

A tale scopo creiamo un nuovo file con un foglio contenente degli indirizzi nel modo seguente:

Adesso creiamo un bottone al quale collegare lo script che andremo a comporre successivamente. Per aggiungere un pulsante nel foglio di calcolo dobbiamo usare un’immagine, a differenza di quanto accadeva in Excel dove si possono inserire pulsanti da interfaccia. All’immagine assoceremo poi uno script.

Per aggiungere un’immagine andiamo su Inserisci > Immagine…

Prendiamo un’immagine dal nostro computer oppure cerchiamola su Google. Dovremmo arrivare ad una situazione come questa:

A questo punto andiamo su Strumenti > Editor di script e aggiungiamo il nostro script.

Con GmailApp.sendEmail() invieremo l’email utilizzando la nostra casella di posta, mentre con Browser.msgBox() lanceremo un messaggio di conferma delle email inviate.

Fatto questo torniamo nello spreadsheet e clicchiamo col destro sull’immagine. Vedremo comparire in alto a destra dei puntini, clicchiamoci sopra per aprire il menù contestuale.

Scegliamo Assegna script… e nella finestra inseriamo il nome della nostra funzione, ovvero InviaEmailAllaLista

Fatto questo possiamo cliccare sul nostro pulsante e testare il nostro nuovo script.

Se abbiamo fatto tutto bene riceveremo un messaggio di conferma.

Vedi articolo

[javascript] Scrivere righe, colonne e formule su Google Spreadsheet utilizzando Google Apps Script (per esordienti totali)

Oggi voglio proporre un esercizio facile facile su Google Spreadsheet, l’equivalente (si fa per dire!) G Suite a Microsoft Excel.

In Excel è possibile aggiungere macro (o script) ai fogli di calcolo utilizzando VBA, mentre Google ha implementato per il medesimo risultato gli script tramite JavaScript.

Prima di cominciare vediamo il risultato che intendiamo ottenere: creare uno script che generi tre colonne di dati, contenenti rispettivamente una sequenza di ID, un elenco di prodotti pescati casualmente da un vettore, delle quantità casuali; in fondo alla tabella vogliamo scrivere il TOTALE utilizzando una funzione di somma.

Quello di sopra è ciò che vogliamo arrivare a vedere alla fine.

Cominciamo allora subito creando un nuovo foglio, che io ho chiamato test script, poi aggiungiamo uno script andando su Strumenti > Editor di script.

A questo punto si aprirà la schermata degli script dove verrà proposta una funzione base. Cancelliamola e creiamo la nostra funzione in questo modo:

Anzitutto creiamo un oggetto collegato al foglio corrente:

Con getActiveSpreadsheet() prendiamo il riferimento alla cartella di lavoro aperta in questo momento (l’equivalente di Workbook in Excel), mentre con getSheets() prendiamo il vettore di tutti i fogli nella cartella di lavoro.

Puliamo anzitutto il foglio da precedenti contenuti con:

Adesso cambiamo il nome del foglio con:

A questo punto possiamo costruire la nostra funzione per popolare il foglio con i dati come da esempio iniziale. Integrando il tutto dovremmo ottenere qualcosa di simile a questo:

Faccio notare che la somma totale dei prodotti la facciamo con =SUM(C2:C100) che impostiamo nella cella alla riga 101 e colonna 3.

Quando abbiamo fatto tutto premiamo il tasto ESEGUI (play). Se è la prima volta che eseguiamo lo script ci verrà chiesto di autorizzarlo per accedere al foglio di lavoro dal quale siamo partiti. Concediamogli l’autorizzazione.

ATTENZIONE! Comparirà una schermata di avviso come se la connessione non fosse sicura, che ci allerterà che stiamo per eseguire uno script non sicuro, dal momento che è uno script personalizzato da noi e non verificato da Google. Clicchiamo su Avanzate e procediamo.

Se tutto è andato bene avremo eseguito il nostro primo script delle Google Apps Script. 🙂

Vedi articolo