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 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, o IMPORTRANGE), 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).