Google Apps Script ti consente di fare cose nuove e interessanti con Fogli Google. Puoi utilizzare Apps Script per aggiungere menu, finestre di dialogo e barre laterali personalizzati a Fogli Google. Inoltre, consente di scrivere funzioni personalizzate per Fogli, nonché di integrare Fogli con altri servizi Google come Calendar, Drive e Gmail.
La maggior parte degli script progettati per Fogli Google manipola gli array per interagire con le celle, le righe e le colonne di un foglio di lavoro. Se non hai familiarità con gli array in JavaScript, Codecademy offre un ottimo modulo di formazione sugli array. Tieni presente che questo corso non è stato sviluppato da Google e non è associato a Google.
Per una breve introduzione all'utilizzo di Apps Script con Fogli Google, consulta la Guida rapida di 5 minuti su macro, menu e funzioni personalizzate.
Inizia
Apps Script include API speciali che ti consentono di creare, leggere e modificare in modo programmatico i fogli Google. Apps Script può interagire con Fogli Google in due modi principali: qualsiasi script può creare o modificare un foglio di lavoro se l'utente dello script dispone delle autorizzazioni appropriate per il foglio di lavoro e uno script può anche essere associato a un foglio di lavoro, il che consente allo script di disporre di funzionalità speciali per modificare l'interfaccia utente o rispondere all'apertura del foglio di lavoro. Per creare uno script associato, seleziona Estensioni > Apps Script da Fogli Google.
Il servizio Fogli di lavoro tratta Fogli Google come una griglia, operando con array bidimensionali. Per recuperare i dati dal foglio di lavoro, devi accedere al foglio di lavoro in cui sono memorizzati, recuperare l'intervallo nel foglio di lavoro che contiene i dati e poi recuperare i valori delle celle. Apps Script semplifica l'accesso ai dati leggendo i dati strutturati nel foglio di lavoro e creando oggetti JavaScript per questi dati.
Lettura dei dati
Supponiamo di avere un elenco di nomi e numeri di prodotti memorizzati in un foglio di lavoro, come mostrato nell'immagine di seguito.
L'esempio seguente mostra come recuperare e registrare i nomi e i numeri dei prodotti.
function logProductInfo() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
Logger.log('Product name: ' + data[i][0]);
Logger.log('Product number: ' + data[i][1]);
}
}
Visualizza i log
Per visualizzare i dati registrati, fai clic su Log esecuzione nella parte superiore dell'editor di script.
Scrittura dei dati
Per memorizzare i dati, ad esempio il nome e il numero di un nuovo prodotto, nel foglio di lavoro, aggiungi il seguente codice alla fine dello script.
function addProduct() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}
Il codice riportato sopra aggiunge una nuova riga in fondo al foglio di lavoro con i valori specificati. Se esegui questa funzione, vedrai una nuova riga aggiunta al foglio di lavoro.
Menu e interfacce utente personalizzate
Puoi personalizzare Fogli Google aggiungendo menu, finestre di dialogo e barre laterali personalizzate. Per scoprire le nozioni di base sulla creazione di menu, consulta la guida ai menu. Per scoprire come personalizzare i contenuti di una finestra di dialogo, consulta la guida al servizio HTML.
Puoi anche associare una funzione di script a un'immagine o un disegno all'interno di un foglio di lavoro. La funzione verrà eseguita quando un utente fa clic sull'immagine o sul disegno. Per scoprire di più, consulta Immagini e disegni in Fogli Google.
Se prevedi di pubblicare l'interfaccia personalizzata all'interno di un componente aggiuntivo, segui la guida di stile per garantire la coerenza con lo stile e il layout dell'editor di Fogli Google.
Connessione a Moduli Google
Apps Script ti consente di collegare Moduli Google a Fogli Google tramite i servizi Moduli e Foglio di lavoro. Questa funzionalità consente di creare automaticamente un modulo Google in base ai dati di un foglio di lavoro.
Apps Script ti consente anche di utilizzare gli attivatori, come
onFormSubmit
per eseguire un'azione specifica dopo che un utente risponde al modulo.
Per scoprire di più su come collegare Fogli Google a Moduli Google, prova la procedura di avvio rapido di 5 minuti per la gestione delle risposte per Moduli Google.
Formattazione
La classe Range
dispone di metodi come
setBackground(color)
per accedere e modificare il formato di una cella o di un intervallo di celle. L'esempio seguente mostra come impostare lo stile del carattere di un intervallo:
function formatMySpreadsheet() {
// Set the font style of the cells in the range of B2:C2 to be italic.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getRange('B2:C2');
cell.setFontStyle('italic');
}
Convalida dei dati
Apps Script ti consente di accedere alle regole di convalida dei dati esistenti in Fogli Google o di crearne di nuove. Ad esempio, l'esempio seguente mostra come impostare una regola di convalida dei dati che consenta solo numeri compresi tra 1 e 100 in una cella.
function validateMySpreadsheet() {
// Set a rule for the cell B4 to be a number between 1 and 100.
var cell = SpreadsheetApp.getActive().getRange('B4');
var rule = SpreadsheetApp.newDataValidation()
.requireNumberBetween(1, 100)
.setAllowInvalid(false)
.setHelpText('Number must be between 1 and 100.')
.build();
cell.setDataValidation(rule);
}
Per ulteriori dettagli sull'utilizzo delle regole di convalida dei dati, consulta
SpreadsheetApp.newDataValidation()
,
DataValidationBuilder
,
e Range.setDataValidation(rule)
Grafici
Apps Script ti consente di incorporare in un foglio di lavoro grafici che rappresentano i dati in un
intervallo specifico. L'esempio seguente genera un grafico a barre incorporato, supponendo che tu abbia dati grafici nelle celle A1:B15
:
function newChart() {
// Generate a chart representing the data in the range of A1:B15.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var chart = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(sheet.getRange('A1:B15'))
.setPosition(5, 5, 0, 0)
.build();
sheet.insertChart(chart);
}
Per scoprire di più su come incorporare un grafico nel foglio di lavoro, consulta EmbeddedChart
e gli strumenti per la creazione di grafici specifici, come EmbeddedPieChartBuilder
.
Funzioni personalizzate in Fogli Google
Una funzione personalizzata è simile a una funzione di foglio di lavoro integrata come =SUM(A1:A5)
, tranne per il fatto che il comportamento delle funzioni viene definito con Apps Script. Ad esempio, puoi creare una funzione personalizzata, in2mm()
, che converte un valore da pollici a millimetri, quindi utilizzare la formula nel foglio di lavoro digitando =in2mm(A1)
o =in2mm(10)
in una cella.
Per scoprire di più sulle funzioni personalizzate, prova la procedura di avvio rapido di 5 minuti su Menu e funzioni personalizzate o consulta la guida più approfondita alle funzioni personalizzate.
Macro
Le macro sono un altro modo per eseguire il codice di Apps Script dall'interfaccia utente di Fogli Google. A differenza delle funzioni personalizzate, le attivi con una scorciatoia da tastiera o tramite il menu di Fogli Google. Per ulteriori informazioni, consulta Macro di Fogli Google.
Componenti aggiuntivi per Fogli Google
I componenti aggiuntivi sono progetti Apps Script appositamente pacchettizzati che vengono eseguiti in Fogli Google e possono essere installati dal negozio di componenti aggiuntivi di Fogli Google. Se hai sviluppato uno script per Fogli Google e vuoi condividerlo con il mondo, Apps Script ti consente di pubblicarlo come componente aggiuntivo in modo che altri utenti possano installarlo dal marketplace dei componenti aggiuntivi.
Trigger
Gli script associati a un file di Fogli Google possono utilizzare attivatori semplici come le funzioni onOpen()
e onEdit()
per rispondere automaticamente quando un utente che ha accesso in modifica al foglio di lavoro lo apre o lo modifica.
Come gli attivatori semplici, gli attivatori installabili consentono a Fogli Google di eseguire automaticamente una funzione quando si verifica un determinato evento. Gli attivatori installabili, tuttavia, offrono una maggiore flessibilità rispetto agli attivatori semplici e supportano i seguenti eventi: apertura, modifica, modifica, invio modulo e basati sul tempo (orologio).