Este es un ejemplo con todas las partes que necesita el código para mandar un pdf a ciertos grupos.
Falta crear los intervalos con nombre necessarios. El más importante es "ultima_fila"
Además utilizamos dentro de las fórmulas: marca_temporal y grupos_correos
También, para conseguir datos, carpeta_url y plantilla_url
Además, por cada campo que queramos incluir en el pdf, utilizamos "jarduera_actividad" y "maila_curso" que toman toda la columna de cada campo. Si necesitamos más datos en el pdf, deberíamos crear los intervalos con nombre necesarios asociados a cada dato.
function enviar_pdf() {
// variables básicas
var herramienta = SpreadsheetApp.getActiveSpreadsheet()
var ultima_fila = herramienta.getRangeByName('ultima_fila').setValue
('=filter(row(marca_temporal);marca_temporal=max(marca_temporal))').getValue()
var pestana = herramienta.getRangeByName('ultima_fila').getSheet()
// variables de carpeta y de plantilla
var carpeta_id = herramienta.getRangeByName('carpeta_url')
.getValue().match(/[-\w]{25,}/)
var plantilla_id = herramienta.getRangeByName('plantilla_url')
.getValue().match(/[-\w]{25,}/)
// Variables que se rellenan en la plantilla, de columna y variable
var columna_jarduera_actividad = herramienta.getRangeByName('jarduera_actividad')
.getColumn()
var jarduera_actividad = pestana.getRange(ultima_fila, columna_jarduera_actividad)
.getValue()
var columna_maila_curso= herramienta.getRangeByName('maila_curso').getColumn()
var maila_curso = pestana.getRange(ultima_fila, columna_maila_curso).getValue()
// Conseguimos la carpeta y creamos la copia basada en la plantilla
var carpeta = DriveApp.getFolderById(carpeta_id)
var nuevo_documento_id = DriveApp.getFileById(plantilla_id).
makeCopy('nuevo', carpeta).getId()
var nuevo_documento = DocumentApp.openById(nuevo_documento_id)
// Entramos y cambiamos
var body = nuevo_documento.getBody()
body.replaceText('<<JARDUERA/ACTIVIDAD>>', jarduera_actividad)
// Cerramos
nuevo_documento.saveAndClose()
// Variables para el correo
var arduraduna = herramienta.getRangeByName('arduraduna').getValue()
var ikasketaburua= herramienta.getRangeByName('ikasketaburua').getValue()
var titulo= herramienta.getRangeByName('titulo').getValue()
var mensaje= herramienta.getRangeByName('mezua').getValue()
var correo
// Convertimos en pdf
var pdf =DriveApp.createFile(nuevo_documento.getAs('application/pdf')
.setName(titulo+' -- '+data_fecha+'.pdf'))
// Pillamos todos los grupos
var array_grupos = maila_curso.split(",")
Logger.log(array_grupos)
// Mandamos a cada correo
for (grupo in array_grupos){
correo = pestana.getRange('cada_correo')
.setValue('=iferror(vlookup("'+array_grupos[grupo].trim()+'";grupos_correos;2;false))')
.getValue()
var opciones ={attachments: pdf ,bcc:arduraduna ,cc:ikasketaburua}
MailApp.sendEmail(correo, titulo, mensaje, opciones)
}
// Borramos el documento
pdf.setTrashed(true)
// DriveApp.getFileById(nuevo_documento_id ).setTrashed(true)
}