Cómo crear documentos desde una plantilla a partir de los datos de una hoja de cálculo con Google Drive

Cómo crear documentos desde una plantilla a partir de los datos de una hoja de cálculo con Google Drive

En esta entrada vamos a ver una opción muy útil de Google Drive, que nos permite crear varios nuevos documentos de texto rellenando una plantilla con los datos que tenemos en una hoja de cálculo. Es decir, queremos generar documentos (tipo Word) con una estructura determinada a partir de los datos de la hoja de cálculo.

Para ello usaremos una aplicación poco conocida, que se llama Apps Script.

Esta aplicación la podemos usar para multitud de aplicaciones, por ejemplo:

  • Crear un dorsal por cada uno de los inscritos en una carrera.
  • Generar un documento con las notas de cada alumno (actas, etc).
  • Generar facturas.

Seguro que se te ocurren muchas más aplicaciones.

De momento este ejemplo lo vamos a hacer lo más sencillo posible. Pero si quieres esta aplicación nos permite muchas más opciones (las iremos viendo más adelante): Exportarlo como PDF, mandarlo por email, generar los documentos en el mismo momento en el que rellenan un formulario, …

Podéis verlo en el siguiente vídeo o seguir leyendo paso a paso.

Primer paso: Generamos la plantilla – Documento de texto

El primer paso va a ser generar un documento de texto con la plantilla dentro de Google Drive.

Si quieres, una buena idea sería crear una carpeta para todos estos documentos que vamos a generar.

En mi caso he hecho una muy sencilla, pero la puedes complicar todo lo que quieras. Este es mi documento de plantilla. Fíjate que donde quiero que ponga cada uno de los datos lo he marcado de una forma especial. En mi caso quiero que donde he puesto {nombre} lo cambie por el nombre y donde he puesto {nota} lo cambie por la nota

Plantilla documento de texto

¡Ya la tenemos! Pues ahora necesitamos copiar el ID de la plantilla. Lo debes coger desde la barra de direcciones, el que está entre las dos / (es el código que marco en rosa en mi caso, en tu caso tendrás que coger el de tu documento):

id del documento

Segundo paso: Creamos la hoja de cálculo

Vamos a crear la hoja de cálculo desde Google Drive. En mi caso tengo una hoja muy sencilla con sólo dos columnas: Nombre y Nota.

Datos de hoja de cálculo excel

¿Ya lo tienes? Pues repetimos el paso anterior y copiamos el ID del documento, tal y como hemos hecho antes con el documento de la plantilla.

Tercer paso: Abrimos Apps Script y creamos nuestra función

Ahora viene donde se pone interesante. Vamos, desde la hoja de cálculo a «Extensiones» y «Apps Script»

Quizá te pida permisos para abrirse, se los debemos conceder.

Tendremos que borrar el código que sale y pegar este código que os proporciono a continuación (lo puedes copiar de aquí y pegarlo).

function CrearDocumento() {

  //IMPORTANTE: CAMBIAR en cada caso. Estos identificadores de la hoja y la plantilla los tienes que coger desde la URL de tus documentos
  var plantillaID = '';
  var hojaCalculoID = '';

  //Abro la hoja de cálculo
  var hojaCalculo = SpreadsheetApp.openById(hojaCalculoID);

  //Cojo las columnas de la hoja que necesito, en este caso el nombre y la nota. Puedes poner el rango que necesites
  var nombres = hojaCalculo.getRange('A2:A8').getValues();
  var notas = hojaCalculo.getRange('B2:B8').getValues();


  //Para cada una de las filas del documento voy a ejecutar este código
  for (var i = 0; i < nombres.length; i++) {

    //Cojo el nombre y la nota
    var nombre = nombres[i][0];
    var nota = notas[i][0];

    // Hago una copia de la plantilla para crear el nuevo documento, y guardo su identificador en nuevoDocumentID para poder usarlo luego
    var nuevoDocumentID = DriveApp.getFileById(plantillaID).makeCopy().getId();

    // Renombro el archivo nuevo que he creado
    DriveApp.getFileById(nuevoDocumentID).setName('Informe ' + nombre);

    // Cargo el cuerpo nuevo documento
    var nuevodoc = DocumentApp.openById(nuevoDocumentID).getBody();

    // Cambio el nombre y la nota en el nuevo documento. Donde en el documento ponga {nombre} yo voy a poner el nombre que he cogido de la hoja
    nuevodoc.replaceText('{nombre}', nombre);
    nuevodoc.replaceText('{nota}', nota);
  }
}

Deberás modificar al menos los IDs de tus documentos y el rango:

Código google drive

Debes modificar al menos dos cosas:

  • En plantilaID y hojaCalculoID necesitas poner los IDs de tus documentos.
  • En nombres y notas deberás poner el rango de los datos dentro de tu hoja de cálculo (las casillas donde se encuentren los datos que quieras coger).

Si necesitas poner más datos no tienes más que añadirlos y repetir el mismo proceso que hacemos con notas y con nombre.

Cuarto paso: Ejecutamos

Ya lo tenemos todo listo, llega el momento de la verdad ¡vamos a ejecutar!

Dale al botón de ejecutar (y si te pide permisos se los tendrás que dar):

apps script de Google Drive

Aparecerá una consola que te dirá que se está ejecutando.

En la misma carpeta en la que tienes tu hoja de cálculo se generarán varios documentos, uno por cada una de las filas. Tienes que darle un poco de tiempo (unos minutos) para que se ejecute por completo y rellene todos los datos. Debes esperar hasta que te indique que la ejecución ha finalizado.

Después comprueba que están correctos.

informes generados desde excel
Informes word desde datos excel

¿Sabes que con Apps Script puedes hacer que estos informes se envíen por email de forma automática? ¿o que se creen los documentos conforme se reciben respuestas en un formulario?

Más adelante iremos haciendo más ejemplos más complicados. Ahora de momento para comenzar no está nada mal con este ejemplo sencillo ¿no te parece?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *