Capitolo 3 Caso pratico: sistemare la tabella delle vendite mensili ・ MISSIONE 11
Missione 11: Scrivere la colonna del risultato in una volta (setValues)
Consegna
Scrivi «Grande» nella categoria di ogni riga con importo di almeno 100.000. Invece di scrivere riga per riga, leggi la colonna in una volta e scrivila in una volta.
Per l’esercizio, la tabella torna allo stato iniziale prima di ogni esecuzione (un foglio vero non torna indietro. Le modifiche di uno script a volte si annullano con Ctrl+Z, ma non tutte insieme).
Archivio +
Codice.gs
Capitolo 3 ・ MISSIONE 11
Scrivere la colonna del risultato in una volta (setValues)
Scrivi «Grande» nella categoria di ogni riga con importo di almeno 100.000. Invece di scrivere riga per riga, leggi la colonna in una volta e scrivila in una volta.
Leggere il codice
- sheet.getRange(2, 4, lastRow - 1, 1).getValues();
- Legge in una volta lastRow - 1 righe e 1 colonna (quella degli importi), a partire dalla riga 2, colonna 4.
- amounts.map((row) => [row[0] >= 100000 ? 'Grande' : '']);
- Crea un array con «Grande» per le righe di almeno 100.000 e vuoto per le altre. condizione ? A : B è un modo di scrivere if su una riga.
- sheet.getRange(2, 5, labels.length, 1).setValues(labels);
- Scrive labels in una volta nella colonna E, su tante righe quante ne ha labels.
Leggere in una volta con getValues, convertire riga per riga con map e scrivere in una volta con setValues. È più veloce che cella per cella: nemmeno migliaia di righe ti fanno aspettare. Se intervallo e array hanno un numero di righe diverso, compare l’errore «The number of rows in the data does not match …».
Come iniziare con GAS e il codice di uso comune sono spiegati in un articolo.Che cos’è GAS? Come iniziare e codice di uso comune
Il codice che scrivi gira in uno spazio isolato all’interno di questa pagina. Non può raggiungere l’esterno della pagina né altri siti.
* Questa è una simulazione del comportamento di Fogli Google e Apps Script e può differire in parte dall’originale.
* Fogli Google è un marchio di Google LLC. Questo sito non è affiliato a Google.