Utilizza Google Apps Script per estendere Fogli. Aggiungi menu personalizzati, finestre di dialogo e barre laterali a Fogli. Scrivi funzioni personalizzate per Fogli e integralo con altri servizi Google come Google Calendar, Google Drive e Gmail.
La maggior parte degli script progettati per Fogli 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 per gli array. Questo corso non è stato sviluppato da Google e non è associato a Google.
Per una rapida introduzione all'utilizzo di Apps Script con Fogli, consulta la guida rapida di 5 minuti per macro, menu e funzioni personalizzate.
Inizia
Apps Script include API speciali per creare, leggere e modificare i fogli in modo programmatico. Apps Script interagisce con Fogli in due modi: qualsiasi script può creare o modificare un foglio di lavoro se l'utente dello script dispone delle autorizzazioni appropriate e uno script può anche essere associato a un foglio di lavoro. Gli script associati hanno 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.
Il servizio Fogli di lavoro tratta i fogli come una griglia, operando con array bidimensionali. Per recuperare i dati dal foglio di lavoro, accedi al foglio di lavoro in cui sono archiviati i dati, recupera l'intervallo che contiene i dati e poi recupera i valori delle celle. Apps Script facilita l'accesso ai dati leggendo i dati strutturati nel foglio di lavoro e creando oggetti JavaScript per questi dati.
Lettura di dati
Supponiamo di avere un elenco di nomi e numeri di prodotto memorizzati in un foglio di lavoro, come mostrato nell'immagine seguente.

L'esempio seguente mostra come recuperare e registrare i nomi e i numeri dei prodotti.
function logProductInfo() {
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();
for (let 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 di esecuzione nella parte superiore dell'editor di script.
Scrivi dati
Per memorizzare i dati, ad esempio un nuovo nome e numero di prodotto nel foglio di lavoro, aggiungi il seguente codice alla fine dello script.
function addProduct() {
const sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}
Il codice precedente aggiunge una nuova riga nella parte inferiore del foglio di lavoro, con i valori specificati. Se esegui questa funzione, al foglio di lavoro viene aggiunta una nuova riga.
Menu e interfacce utente personalizzati
Personalizza Fogli aggiungendo menu, finestre di dialogo e barre laterali personalizzati. Per imparare le nozioni di base sulla creazione dei menu, consulta la guida ai menu. Per scoprire come personalizzare i contenuti di una finestra di dialogo, consulta la guida al servizio HTML.
Allega una funzione di script a un'immagine o a un disegno all'interno di un foglio di lavoro; la funzione viene eseguita quando un utente fa clic sull'immagine o sul disegno. Per saperne di più, consulta Immagini e disegni in Fogli.
Se prevedi di pubblicare la tua interfaccia personalizzata come parte di un componente aggiuntivo, segui la guida di stile per garantire la coerenza con lo stile e il layout dell'editor di Fogli.
Connettiti a Moduli Google
Collega Moduli Google a Fogli tramite i
servizi Moduli e
Fogli di lavoro. Questa funzionalità crea automaticamente un Modulo Google in base ai dati di un foglio di lavoro.
Apps Script ti consente anche di utilizzare i trigger, ad
esempio onFormSubmit, per eseguire un'azione specifica dopo che un utente risponde al
modulo. Per saperne di più sul collegamento di Fogli a Moduli, prova la
guida rapida Gestire le risposte per i moduli di 5 minuti.
Formatta i dati
La Range classe ha metodi come
setBackground
per accedere e modificare il formato di una cella o di un intervallo di celle. L'esempio seguente imposta 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.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheets()[0];
const cell = sheet.getRange('B2:C2');
cell.setFontStyle('italic');
}
Convalida dei dati
Accedi alle regole di convalida dei dati esistenti in Fogli o crea nuove regole. Ad esempio, il seguente esempio mostra come impostare una regola di convalida dei dati che consente 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.
const cell = SpreadsheetApp.getActive().getRange('B4');
const rule = SpreadsheetApp.newDataValidation()
.requireNumberBetween(1, 100)
.setAllowInvalid(false)
.setHelpText('Number must be between 1 and 100.')
.build();
cell.setDataValidation(rule);
}
Per maggiori dettagli sull'utilizzo delle regole di convalida dei dati, consulta
SpreadsheetApp.newDataValidation,
DataValidationBuilder,
e Range.setDataValidation
Grafici
Incorpora i grafici in un foglio di lavoro che rappresentano i dati in un intervallo specifico. L'esempio seguente genera un grafico a barre incorporato, presupponendo che tu abbia dati graficabili nelle celle A1:B15:
function newChart() {
// Generate a chart representing the data in the range of A1:B15.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheets()[0];
const chart = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(sheet.getRange('A1:B15'))
.setPosition(5, 5, 0, 0)
.build();
sheet.insertChart(chart);
}
Per saperne di più sull'incorporamento di un grafico nel foglio di lavoro, consulta
EmbeddedChart e i generatori di grafici specifici, ad esempio
EmbeddedPieChartBuilder.
Funzioni personalizzate in Fogli Google
Una funzione personalizzata è simile a una funzione di foglio di lavoro integrata
come =SUM(A1:A5), ma definisci il comportamento della funzione 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 saperne di più sulle funzioni personalizzate, prova la guida rapida di 5 minuti Menu e funzioni personalizzate o consulta la guida più approfondita alle funzioni personalizzate.
Macro
Le macro sono un altro modo per eseguire il codice Apps Script dall'interfaccia utente di Fogli. A differenza delle funzioni personalizzate, le attivi con una scorciatoia da tastiera o tramite il menu Fogli. Per saperne di più, consulta Macro di Fogli.
Componenti aggiuntivi per Fogli Google
I componenti aggiuntivi sono progetti Apps Script confezionati appositamente che vengono eseguiti all'interno di Fogli e possono essere installati dal negozio di componenti aggiuntivi di Fogli. Se hai sviluppato uno script per Fogli e vuoi condividerlo, Apps Script ti consente di pubblicare il tuo script come componente aggiuntivo in modo che altri utenti possano installarlo.
Prestazioni e scalabilità
Man mano che i set di dati aumentano, potresti riscontrare problemi di prestazioni. Per ottimizzare il foglio di lavoro e gli script:
- Segui le best practice: leggi la guida Best practice per suggerimenti su come ridurre al minimo le chiamate ai servizi e utilizzare le operazioni batch.
- Ottimizza le formule: se il foglio di lavoro è lento a causa di formule complesse
(come
VLOOKUP,ARRAYFORMULA, oIMPORTRANGE), valuta la possibilità di utilizzare Apps Script per eseguire questi calcoli in memoria e scrivere i risultati in batch. - Valuta alternative di database: per set di dati molto grandi (che si avvicinano a 10 milioni di celle) o per l'inserimento di dati ad alta frequenza (ad es. molti moduli collegati), valuta la possibilità di utilizzare Google Cloud SQL utilizzando JDBC o BigQuery.
Trigger
Gli script associati a un file Fogli possono utilizzare trigger semplici come le funzioni onOpen() e onEdit() per rispondere automaticamente quando un utente con accesso in modifica al foglio di lavoro lo apre o lo modifica.
Come i trigger semplici, i trigger installabili consentono a
Fogli di eseguire automaticamente una funzione quando si verifica un determinato evento.
Tuttavia, i trigger installabili offrono maggiore flessibilità rispetto ai trigger semplici e supportano i seguenti eventi: apertura, modifica, modifica, invio di moduli e basati sul tempo (orologio).