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, ti consente di scrivere funzioni personalizzate per Fogli e 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 celle, righe e 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 e non è associato a Google.
Per una rapida introduzione all'utilizzo di Apps Script con Fogli Google, consulta la guida rapida di 5 minuti per 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 capacità 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 archiviare dati nel foglio di lavoro, ad esempio un nuovo nome e un nuovo numero di prodotto, 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 nella parte inferiore del foglio di lavoro, con i valori specificati. Se esegui questa funzione, vedrai una nuova riga aggiunta al foglio di lavoro.
Menu e interfacce utente personalizzati
Puoi personalizzare Fogli Google aggiungendo menu, finestre di dialogo e barre laterali personalizzati. 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à
può creare automaticamente un modulo Google in base ai dati di un foglio di lavoro.
Apps Script ti consente inoltre di utilizzare attivatori, come onFormSubmit
, per eseguire un'azione specifica dopo che un utente ha risposto al modulo.
Per scoprire di più sulla connessione di Fogli Google a Moduli Google, prova la guida rapida di 5 minuti sulla gestione
delle risposte per Moduli Google.
Formattazione
La classe Range
prevede 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 creare nuove regole. 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 semplici attivatori come le funzioni onOpen()
e onEdit()
per rispondere automaticamente quando un utente con accesso in modifica al foglio di lavoro apre o modifica il foglio di lavoro.
Come gli attivatori semplici, gli attivatori installabili consentono a Fogli Google di eseguire automaticamente una funzione quando si verifica un determinato evento. Tuttavia, gli attivatori installabili offrono maggiore flessibilità rispetto ai semplici attivatori e supportano i seguenti eventi: apertura, modifica, modifica, invio di modulo e time-led (orologio).