Google Spreadsheets – Macro para conectarse a Mysql.

En este artículo mostraré cómo podemos consultar el contenido de una tabla en un servidor Mysql.

Al trabajar en nuestras hojas de cálculo de google en muchas ocasiones se hace necesario realizar consultas a nuestra base de datos. En excel de Microsoft eso es posible gracias a las funciones de conexión a diversos orígenes de datos.  En el caso de Google SpreadSheet es posible consultar datos de nuestro servidor de base de datos pero para ello tendremos que hacer uso de una macro y el conector JDBC que proporciona Google.

Para poder hacer uso del conector JDBC, lo primero que debemos hacer es habilitar las conexiones remotas en nuestro servidor mysql desde las siguientes direcciones Ip que pertenecen a google:

64.18.0.0/20
64.233.160.0/19
66.102.0.0/20
66.249.80.0/20
72.14.192.0/18
74.125.0.0/16
173.194.0.0/16
207.126.144.0/20
209.85.128.0/17
216.239.32.0/19

Luego seleccionaremos los datos que deseamos obtener, en mi caso la macro ejecutará una consulta que me devolverá el contenido de la tabla países de mi base de datos Mysql.

Luego crearemos la macro que nos permita ejecutar la consulta en la tabla:

function consulta_paises() {
  
  var Conexion = Jdbc.getConnection('jdbc:mysql://servidor_mysql.com:3306', 'usuario', 'password');
  var sentencia = Conexion.createStatement();
  var recordset = sentencia.executeQuery('select * from et_spreadsheet.paises');
  var hoja = SpreadsheetApp.getActiveSpreadsheet();
  var celda = hoja.getRange('A1');
  var row = 0;
  while (recordset.next()) {
    for (var col = 0; col < recordset.getMetaData().getColumnCount(); col++) {
      celda.offset(row, col).setValue(recordset.getString(col + 1));
    }
    row++;
  }
  recordset.close();
  sentencia.close();
  Conexion.close();
  
}

Y al ejecutarla obtendremos el resultado de la consulta SQL en nuestra hoja de cálculo de google como se puede observar en la siguiente imagen:

Si deseas saber más, puedes consultar la documentación de google:  Jdbc

Sé el primero en comentar

Deja un comentario