Google Scripting

De Wikijoan
(Diferència entre revisions)
Dreceres ràpides: navegació, cerca
(Llegir i escriure en un full de càlcul)
(Tasques a realitzar)
Línia 56: Línia 56:
 
La llista de pobles i comarques de Catalunya els podeu trobar a la wikipèdia en format per copiar-los directament al full de càlcul:
 
La llista de pobles i comarques de Catalunya els podeu trobar a la wikipèdia en format per copiar-los directament al full de càlcul:
 
*https://ca.wikipedia.org/wiki/Llista_de_municipis_de_Catalunya
 
*https://ca.wikipedia.org/wiki/Llista_de_municipis_de_Catalunya
'''Solució''': la propera setmana... Problemes que m'he trobat: Compte en copiar i enganxar de la wikipèdia al full de càlcul. No hi ha d'haver espais en blanc al final, i s'ha d'enganxar només els valors, sense cap format. És convenient copiar-ho primer a un editor de text pla com ara el gedit.
+
'''Solució''': Problemes que m'he trobat: Compte en copiar i enganxar de la wikipèdia al full de càlcul. No hi ha d'haver espais en blanc al final, i s'ha d'enganxar només els valors, sense cap format. És convenient copiar-ho primer a un editor de text pla com ara el gedit.
 +
<pre>
 +
var body = "";
 +
 
 +
function logPoblesInfo() {
 +
 
 +
  var sheet = SpreadsheetApp.getActiveSheet();
 +
  //var data = sheet.getDataRange().getValues();
 +
  var data = sheet.getRange(1,1,sheet.getLastRow(),sheet.getLastColumn()).getValues();
 +
  for (var i = 0; i < data.length; i++) {
 +
    if (data[i][1] == 'Berguedà') { 
 +
      Logger.log('Poble: ' + data[i][0]);
 +
      body += data[i][0] + '\n';
 +
    }
 +
  }
 +
 
 +
  var email = Session.getActiveUser().getEmail();
 +
  var subject = "Pobles del Berguedà";
 +
  GmailApp.sendEmail(email, subject, body);
 +
 
 +
}
 +
</pre>
  
 
=Entrega=
 
=Entrega=

Revisió de 13:48, 6 maig 2016

Contingut

Introducció. Tutorial Google Scripting

A classe es seguirà el següent tutorial:

Extending Google Docs

Extending Google Sheets

For a quick introduction to using Apps Script with Google Sheets, see the 5-minute quickstart guide for Macros, Menus, and Custom Functions.

Desenvolupament

Llegir i escriure en un full de càlcul

Anem a veure l'exemple bàsic de llegir i escriure en un full de càlcul de Google. Creem un full de càlcul nou, i omplim uns quants valors. Per ex:

Manresa	Bages
Balsareny	Bages
Sallent	Bages
Puig-reig	Berguedà
Gironella	Berguedà
Berga	Berguedà

A Eines > Editor de Scripts, afegim aquestes dues funcions:

function logPoblesInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Poble: ' + data[i][0]);
    Logger.log('Comarca: ' + data[i][1]);
  }
}

function afegirPoble() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cercs', 'Berguedà']);
}

Per provar-les, hem de fer Executa i seleccionar la funció que volem provar. Per tal de què funcioni la primera (logPoblesInfo()) hem de tenir seleccionat el rang. Per veure els resultats (objecte Logger.log) hem d'anar a Visualitza > Registres.

Per tal de poder visualitzar les dades dels pobles sense haver de seleccionar el rang, podem substituir una línia per la següent:

  //var data = sheet.getDataRange().getValues();
  var data = sheet.getRange(1,1,sheet.getLastRow(),sheet.getLastColumn()).getValues();

D'aquesta manera Google Spreadsheet sap trobar quin és el rang on tinc dades.

Tasques a realitzar

Un cop fet els tutorials vistos anteriorment, l'alumne haurà de realitzar el següent exercici.

  1. Omplir un full de càlcul amb els municipis de Catalunya i comarques.
  2. Crear en l'editor de scripts una funció que filtri per la comarca Berguedà.
  3. Crear en l'editor de scripts una funció per enviar per correu electrònic la llista dels municipis del Berguedà.

La llista de pobles i comarques de Catalunya els podeu trobar a la wikipèdia en format per copiar-los directament al full de càlcul:

Solució: Problemes que m'he trobat: Compte en copiar i enganxar de la wikipèdia al full de càlcul. No hi ha d'haver espais en blanc al final, i s'ha d'enganxar només els valors, sense cap format. És convenient copiar-ho primer a un editor de text pla com ara el gedit.

var body = "";

function logPoblesInfo() {
  
  var sheet = SpreadsheetApp.getActiveSheet();
  //var data = sheet.getDataRange().getValues();
  var data = sheet.getRange(1,1,sheet.getLastRow(),sheet.getLastColumn()).getValues();
  for (var i = 0; i < data.length; i++) {
    if (data[i][1] == 'Berguedà') {  
      Logger.log('Poble: ' + data[i][0]);
      body += data[i][0] + '\n';
    }
  }
  
  var email = Session.getActiveUser().getEmail();
  var subject = "Pobles del Berguedà";
  GmailApp.sendEmail(email, subject, body);

}

Entrega

Recorda la normativa per entregar les pràctiques al Schoology: ASIX-M09-IAW#Normativa_d.27entrega_de_les_pr.C3.A0ctiques_al_Moodle.

Per demostrar que has fet allò que es pretén i que has arribat allà on es pretén, n'hi haurà prou en fer unes captures de pantalla. Recorda d'escriure en el fitxer LLEEIX-ME els dubtes, problemes, èxits i fracassos que t'has trobat.


creat per Joan Quintana Compte, febrer 2014

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines