Estendi di Fogli Google

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 quando viene aperto il foglio di lavoro. Per creare uno script associato, seleziona Estensioni > Apps Script in Fogli.

Il servizio Fogli tratta 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 il nome e il numero di un nuovo 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 in fondo al 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 scoprire 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 Fogli.

Connettersi a Moduli Google

Collega Moduli Google a Fogli tramite i servizi Moduli e Fogli. Questa funzionalità crea automaticamente un modulo Google in base ai dati di un foglio di lavoro. Apps Script ti consente anche di utilizzare trigger, ad esempio onFormSubmit, per eseguire un'azione specifica dopo che un utente ha risposto al modulo. Per scoprire di più sul collegamento di Fogli a Moduli, prova la guida rapida di 5 minuti Gestire le risposte per Moduli.

Formattare i dati

La classe Range 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

Accedere alle regole di convalida dei dati esistenti in Fogli o crearne di nuove. 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 ulteriori dettagli sull'utilizzo delle regole di convalida dei dati, vedi SpreadsheetApp.newDataValidation, DataValidationBuilder, e Range.setDataValidation.

Grafici

Incorpora in un foglio di lavoro grafici che rappresentano i dati in un intervallo specifico. L'esempio seguente genera un grafico a barre incorporato, presupponendo che tu disponga di dati rappresentabili in un grafico 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), tranne per il fatto che 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 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 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 appositamente confezionati che vengono eseguiti all'interno di Fogli e possono essere installati dallo store di componenti aggiuntivi di Fogli. Se hai sviluppato uno script per Fogli e vuoi condividerlo, Apps Script ti consente di pubblicare lo script come componente aggiuntivo in modo che altri utenti possano installarlo.

Prestazioni e scalabilità

Man mano che i set di dati crescono, potresti riscontrare problemi di prestazioni. Per ottimizzare il foglio di lavoro e gli script:

  • Segui le best practice: leggi la guida alle best practice per suggerimenti su come ridurre al minimo le chiamate di servizio e utilizzare le operazioni batch.
  • Ottimizza le formule: se il foglio di lavoro è lento a causa di formule complesse (come VLOOKUP, ARRAYFORMULA o IMPORTRANGE), valuta la possibilità di utilizzare Apps Script per eseguire questi calcoli in memoria e scrivere i risultati in batch.
  • Valuta alternative al 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 con JDBC o BigQuery.

Trigger

Gli script associati a un file Sheets 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. Gli attivatori installabili, tuttavia, offrono maggiore flessibilità rispetto agli attivatori semplici e supportano i seguenti eventi: apertura, modifica, cambiamento, invio modulo e basati sul tempo (orologio).