| Bots de conversa | Exemples | Dades pràctiques | Recursos CITCEA | |
| Google Apps Script | Projectes | Interacció | Inici |
Tenim la possibilitat d'escriure les dades afegint una filera o bé sobrescriure dades en les fileres ja existents.
Per afegir una filera farem servir la funció appendRow posant com a paràmetre un vector que conté les dades corresponents a les diverses caselles. Per exemple:
var IdFull = "1j0IjAcf0BDppQuAOGZjLSjWY2_VYhgYeKg42bhQMk9Q"; // Identificador del full de càlcul var numFull = 0; // Número del full amb el que hem de treballar var camps = new Array(3); // Contindrà tres valors per guardar a la taula camps[0] = valor1; camps[1] = valor2; camps[3] = valor3; var sh = SpreadsheetApp.openById(IdFull); // Obre el full de càlcul var sheet = sh.getSheets(); // Agafa totes les pestanyes sheet[numFull].appendRow(camps); // Afegeix una filera amb les dades
També podem seleccionar el full pel seu nom, d'aquesta manera no ens afecta si es canvien d'ordre.
var sh = SpreadsheetApp.openById(IdFull).getSheetByName("Llistat"); // Agafem el full
var dades = sh.getDataRange().getValues();
Si, en canvi, volem sobrescriure en fileres ja existents farem servir la comanda setValues. Amb getRange definirem quines són les caselles que volem sobrescriure i amb setValues hi guardarem uns valors. Hi ha diverses possibilitats per a getRange, a la més general les caselles poden pertànyer a una o més fileres (mentre siguin consecutives) i abastar diverses columnes (que no cal que siguin totes), en aquest cas les dades s'han de disposar en format de matriu. La sintaxi és la següent:
// El primer paràmetre és la filera on comença el grup // El segon paràmetre és la columna on comença el grup // El tercer paràmetre és el nombre de fileres que tindrà el grup // El quart paràmetre és el nombre de columnes que ocupa el grup var rangeVal = sheet[numFull].getRange(filaIni, colIni, numFiles, numCols);
A continuació tenim un exemple en el que escrivim a les dues primeres caselles de la darrera filera ocupada, excepte en cas que només hi hagi la filera de títols.
var IdFull = "1j0IjAcf0BDppQuAOGZjLSjWY2_VYhgYeKg42bhQMk9Q"; // Identificador del full de càlcul
var numFull = 0; // Número del full amb el que hem de treballar
var camps = new Array(2); // Valors per guardar a la taula
camps[0] = valor1;
camps[1] = valor2;
// Ja tenim les dues caselles que hem d'escriure a la filera
// Les nostres dades han d'escriure en un espai, que seleccionarem més endavant,
// de dues columnes en una filera
var valu = new Array(1); // Matriu de dades a escriure
valu[0] = camps; // Converteix el vector en una matriu d'una filera i dues columnes
var sh = SpreadsheetApp.openById(IdFull); // Obre el full de càlcul
var sheet = sh.getSheets(); // Agafa totes les pestanyes
var rang = sheet[numFull].getLastRow(); // Darrera línia ocupada
if (rang > 1){ // Mira si ja hi ha un valor (si és 1 només hi ha els títols)
// La funció getRange ens permet seleccionar el grup de caselles sobre les que anem a escriure
// El primer paràmetre és la filera on comença el grup, en el nostre cas la darrera escrita
// El segon paràmetre és la columna on comença el grup, en el nostre exemple la primera (comencen en 1)
// El tercer paràmetre és el nombre de fileres que tindrà el grup, per a nosaltres una
// El quart paràmetre és el nombre de columnes que ocupa el grup, en el nostre cas dues
var rangeVal = sheet[numFull].getRange(rang, 1, 1, 2); // Selecciona dues caselles
rangeVal.setValues(valu); // Guarda els valors a les caselles, substituïnt els anteriors
} else {
// Si no n'hi ha cap, afegeix una fila amb la llista de dades en format matriu
sheet[numFull].appendRow(camps);
}
Si només volem escriure una casella, podem fer servir una versió més senzilla, com en el següent exemple:
var IdFull = "1j0IjAcf0BDppQuAOGZjLSjWY2_VYhgYeKg42bhQMk9Q"; // Identificador del full de càlcul
var numFull = 0; // Número del full amb el que hem de treballar
var sh = SpreadsheetApp.openById(IdFull); // Obre el full de càlcul
var sheet = sh.getSheets(); // Agafa totes les pestanyes
var rang = sheet[numFull].getLastRow(); // Darrera línia ocupada
if (rang > 1){ // Mira si ja hi ha un valor (si és 1 només hi ha els títols)
// La funció getRange ens permet seleccionar el grup de caselles sobre les que anem a escriure
// El primer paràmetre és la filera on comença el grup, en el nostre cas la darrera escrita
// El segon paràmetre és la columna on comença el grup, en el nostre exemple la primera
var rangeVal = sheet[numFull].getRange(rang, 1); // Selecciona la casella
rangeVal.setValue(valor); // Guarda el valor a la casella, substituïnt l'anterior
} else {
// Si no n'hi ha cap, afegeix una fila amb la llista de dades en format matriu
sheet[numFull].appendRow([valor]);
}
Per esborrar una filera tenim la funció següent:
var IdFull = "1j0IjAcf0BDppQuAOGZjLSjWY2_VYhgYeKg42bhQMk9Q"; // Identificador del full de càlcul var numFull = 0; // Número del full amb el que hem de treballar var sh = SpreadsheetApp.openById(IdFull); // Obre el full de càlcul var sheet = sh.getSheets(); // Agafa totes les pestanyes sheet[numFull].deleteRow(3); // Esborra la filera 3 }
També podem esborrar diverses fileres de cop:
var IdFull = "1j0IjAcf0BDppQuAOGZjLSjWY2_VYhgYeKg42bhQMk9Q"; // Identificador del full de càlcul var numFull = 0; // Número del full amb el que hem de treballar var sh = SpreadsheetApp.openById(IdFull); // Obre el full de càlcul var sheet = sh.getSheets(); // Agafa totes les pestanyes sheet[numFull].deleteRows(3, 4); // Esborra quatre fileres, començant per la 3 }
Important:Les fileres i les columnes es comencen a comptar pel número 1. La filera 1 és la dels títols.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.