|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando

-- Tutorial de iniciación de App Inventor 2 en español --

Volver al índice del tutorial

_________________________________________________

136.- Google sheet. Hoja de Cálculo. Guardar. Borrar. Ver. Actualizar. Bajar.

p136_googlesheet.aia

- Tenemos nuestra cuenta de Google.

- Entramos en Google Sheet: https://docs.google.com/spreadsheets/u/0/

- Pulsamos en el icono de "En blanco" para crear una nueva Hoja.

- Archivo / importar. Importamos este archivo desde nuestro ordenador.

- productos.csv

productos.csv
 
10,Arduino UNO,12,3
11,Arduino DUE,16,4
12,Arduino Mini,18,2
13,Arduino Micro,14,10
14,ESP8266-01,11,4
15,ESP8266-12,15,5
16,ESP32,16,5
17,Pantalla LCD-I2C,14,2
18,Módulo I2C,12,1
19,Teclado,10,10
20,Servo g90,12,2
21,Buzzer,14,10
22,Módulo HC-06,12,2
23,Módulo HC-10,12,3
24,Pantalla OLED,11,1
25,Relé,9,3
26,Panel solar,14,3
27,Sensor presión,12,2
28,Sensor humedad,14,3
29,Sensor peso,14,3
30,Sensor infrarojo,10,1
31,Sensor ultrasonido,12,2
32,Brújula,14,2
33,Giroscopio,11,3

- Una vez importado, cambiamos el nombre productos y la hoja, le ponemos hoja1

- El Nombre_Hoja será hoja1

- Vamos a Compartir esta Hoja para que cualquier persona la pueda utilizar.

- Más adelante necesitaremos el código identificador de nuestra Hoja, este será el Identificador.

_________________________________________________________________

- Script. Secuencia de comandos.

- Vamos a crear un Script para bajar toda esta Hoja de Cálculo.

- Utilizaremos el Editor antiguo.

- Vamos a implementar nuestro Script como aplicación web.

- En principio pondremos que puede accedar todos, incluso anónimos.

- IMPORTANTE cada vez que actualicemos el Script debemos establecer un Nuevo Project version, si no lo hacemos no se actualizará.

- Este es el Script que debemos copiar y pegar.

productos
 
function doGet(e) {
  var Identificador_Hoja = SpreadsheetApp.openById(e.parameter.Identificador_Hoja);
  var Nombre_Hoja = Identificador_Hoja.getSheetByName(e.parameter.Nombre_Hoja);
  var Funcion = e.parameter.FUNCION;
  var Borrar = e.parameter.BORRAR;
  var Buscar = e.parameter.BUSCAR;
  var Query = e.parameter.QUERY;
  var rango = Nombre_Hoja.getDataRange().getValues();
  
  // AGREGAR un nuevo registro.
  if (Funcion == 'AGREGAR') {
    var registro = e.parameter.REGISTRO.split(',');
    var codigo = registro[0];   
    var rangoA = Nombre_Hoja.getRange('A:A');
    var v = rangoA.getValues();
    for(var i = v.length-1;i>=0;i--)
      if(v[0,i] == codigo) { 
        return ContentService.createTextOutput("Ya existe."); }
    // En caso que no exista, lo crea...
    Nombre_Hoja.appendRow(registro);
    rangoA.sort(1);
    return ContentService.createTextOutput("Agregado.");  
  }
  
  // MODIFICAR.
  else if (Funcion == 'MODIFICAR') {
    var registro = e.parameter.REGISTRO.split(',');
    var codigo = registro[0];
    var rangoA = Nombre_Hoja.getRange('A:A');
    var v = rangoA.getValues();
    for(var i = v.length-1;i>=0;i--)
      if(v[0,i] == codigo) {
       rangoRegistro = Nombre_Hoja.getRange(i+1,1,1,4)
       rangoRegistro.setValues([registro]);
       return ContentService.createTextOutput("Registro modificado."); }
  return ContentService.createTextOutput("No existe.");
  }
  
  // BUSCAR un código.
  else if (Funcion == 'BUSCAR') {
  var rangoA = Nombre_Hoja.getRange('A:A');
  var v = rangoA.getValues();
  for(var i = v.length-1;i>=0;i--)
    if(v[0,i] == Buscar) {
       var fila = Nombre_Hoja.getRange(i+1,1,1,4).getValues()
       return ContentService.createTextOutput(JSON.stringify(fila));
       // La línea de abajo devuelve String: 25,Relé,9,3
       // return ContentService.createTextOutput(fila).setMimeType(ContentService.MimeType.TEXT);
        }
 return ContentService.createTextOutput("No existe.");
  }
  
  // LEER TODO toda la base y devolver como una lista JSON
  else if (Funcion == 'LEER_TODO') {
    return ContentService.createTextOutput(JSON.stringify(rango)); 
    //return ContentService.createTextOutput(rango).setMimeType(ContentService.MimeType.TEXT);    
  }
  
  // OTRA FORMA DE LEER TODO toda la base. Devuelve String.
  else if (Funcion == 'LEER_TODO2') {
    var todo = '';
      for(var fila = 0 ; fila < rango.length ; ++fila){
        todo += rango[fila].join(',') + '\n';  
      } 
    return ContentService.createTextOutput(todo).setMimeType(ContentService.MimeType.TEXT);
  }
  
  // BORRAR un registro.
  else if (Funcion == 'BORRAR') {
  var rangoA = Nombre_Hoja.getRange('A:A');
  var v = rangoA.getValues();
  for(var i=v.length-1;i>=0;i--)
    if(v[0,i] == Borrar)
      Nombre_Hoja.deleteRow(i+1);
  return ContentService.createTextOutput("Registro borrado.");    
 }
  
   // QUERY. 
  else if (Funcion == 'QUERY') {
var query = '=QUERY('+Nombre_Hoja.getName()+"!"+Nombre_Hoja.getDataRange().getA1Notation()+';\"'+Query+'\")';
    var inserta = Identificador_Hoja.insertSheet();
    var hacer_query = inserta.getRange(1,1).setFormula(query);
    var resultado = inserta.getDataRange().getValues();
    Identificador_Hoja.deleteSheet(inserta); 
    
    return ContentService.createTextOutput(resultado).setMimeType(ContentService.MimeType.TEXT);
    // return ContentService.createTextOutput(JSON.stringify(resultado)); 
  }
  
  
}

_________________
- Diseño.

_________________
-
Bloques.

____________________________________________

- Más información.

- https://developers.google.com/apps-script/reference/spreadsheet

- Obtener un rango directamente sin Script:

https://docs.google.com/spreadsheets/d/19vvvvvvvvvvvvvvvvvvvvvvGbIn3dwLL8/export?format=csv&range=B4:B12

- Bajar toda la Hoja en csv:

https://docs.google.com/spreadsheets/d/19iRIRdnCXf2rt089pu5n2SAT_geeQ7nc8GbIn3dwLL8/gviz/tq?tqx=out:csv&sheet=hoja1

- Bajar toda la Hoja en formato JSON:

https://spreadsheets.google.com/feeds/cells/19vvvvvvvvvvvvvvvvvvvvvvvGbIn3dwLL8/1/public/full?alt=json

- Query

https://developers.google.com/chart/interactive/docs/querylanguage

https://developers.google.com/chart/interactive/docs/reference#QueryResponse_getDataTable

https://developers.google.com/apps-script/guides/web

https://stackoverflow.com/questions/22695365/query-google-spreadsheet-with-url-parameters

http://sophiafeng.com/technical/2013/12/26/visualization-using-google-charts/

https://docs.google.com/spreadsheets/d/19vvvvvvvvvvvvvvvvvvvvvvvGbIn3dwLL8/gviz/tq?tq=SELECT%20*%20where%20A%20contains%20%2219%22

https://docs.google.com/a/google.com/spreadsheets/d/19vvvvvvvvvvvvvvGbIn3dwLL8/gviz/tq?tq=select%20A%20

https://docs.google.com/spreadsheets/d/19vvvvvvvvvvvvvvvvvvvvvvvGbIn3dwLL8/gviz/tq?tq=INSERT%20*%20where%20A%20contains%20%2219%22

 

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información