Combinar correspondencia Google Docs y Sheets vídeo 1
ฝัง
- เผยแพร่เมื่อ 11 ก.ย. 2024
- Combinar correspondencia
veremos como combinar correspondencia o datos entre Google Docs y Google sheets.
usaremos una hoja de calculo de Google como base de datos de una pequeña muestra de personas que recibieron una serie de cursos y se desea, mediante una plantilla diseñada en Documentos de Google, crear los diplomas o reconocimientos respectivos, primero en Google Docs y después convertirlos en PDF's
en una segunda ocasión o vídeo, veremos como enviar estos pdfs a sus destinatarios d forma automática, reduciendo considerablemente los tiempos de entrega de dicha documentación.
¡SUSCRIBETE A MI CANAL! / ofimática para emprend...
Sígueme en:
Facebook: / ofimaticaparaemprended...
Web: sites.google.c...
#googlesheets #googleappsscript #googledocs #googledrive #appsscript #googleapps #ofimaticaemprendedor
Muchas gracias por la aportación. Un canal muy interesante recomendado por mi amigo Aitor.
Gracias a ti por el comentario 👍
Hola, ante todo muchas gracias por el vídeo, muy ilustrativo y fácil de seguir. He estado haciendo algunas pruebas y funciona de manera correcta, pero me gustaría ir un poco más allá e incorporar en el documento pdf una imagen que previamente he incluido en el google sheets (diferente para cada fila). Aquí me surgen dos preguntas, la primera es si en el documento google sheets de origen debo insertar la imagen o un enlace a la misma (almacenadas en una carpeta) y la segunda, cual sería la función auxiliar para rescatar la imagen cómo tal.
Muchas gracias de antemano, un saludo.
Hola Lupita Montero.-me alegra que te haya servido el ejemplo, en cuanto a tus preguntas:
1.-es opcional que tengas la imagen, yo en lo personal tendría el id de la imagen para mostrarla en una celda con la función "image" y con ese mismo id puedo mediante código insertarla en Google Docs, así que sirve para previsualizar y para insertarla en docs
2.-Estuve viendo mi lista de reproducción de manejo de imágenes .-th-cam.com/video/kKhsfvDmK5s/w-d-xo.html
y no tengo ningún ejemplo de manejo de imágenes para Google Docs, así que de momento solo puedo ofrecerte estos links para que veas los métodos que podrías usar, es cosa de revisar:
a.-developers.google.com/apps-script/reference/document/inline-image
b.-developers.google.com/apps-script/reference/document/positioned-image
Muchísimas gracias @ por tomarte tiempo, no solo para responderme sino también para buscarme información que pueda ayudar, exploraré todo lo que me dices y seguro que encuentro la solución.
Un saludo desde Madrid.
Hola Lupita Montero.-si encuentras la solución regresa y cuéntanosla y en caso de que no, igualmente comenta a ver si con algún ejemplo de la estructura de tus documentos (Sheets y docs) podemos ayudarte.
Te iba consultar además. Si existe alguna manera de enviar correo desde GAS usando servicios de tercero. Por ejemplo usando ZIMBRA, WEBMAIL etc. La idea es notificar desde otro servidor usando Sheet. Ya hice el codigo para que salgan desde gmail. Pero necesito que salgan desde otro proveedor pero desde sheets. Gracias
Gaspar pero por lógica eso NO seria usando GAS!!!
así que tendrías que verlo en directo en la plataforma que quieras usar y bajo el sistema o lenguaje que dicha plataforma use para tal efecto.
@ Hola, te llamas Fredy? No?. Tal ves no lo consulté correctamente, pero investigando en Google for developer encontré el código que te permite enviar correo desde gmail pero con otro remitente de proveedor de correo . No viene al caso explicar todo el proceso porque no deviene al hilo del video que has publicado. Pero se puede con un script. Slds. Gracias nuevamente por responder.
hola Gaspar..- me interesa el link para entender mejor a que te refieres, podrías compartirlo!?
Amigo me sirvio tu modelo y lo adapte y potencie.. gracias
Pregunta mi estimado el genera correspondencia de todos los registros alojados en la base de datos,
¿Hay alguna funcion que me permita generar un solo registro de manera individual , tendrias de pronto una idea de como hacerlo?
Es que debo generar el certificado pero de 300 registos por lo que no quiero generarlos todos si no uno , no se identificandolo por cedula primero y luego que lo imprima en el drive.
te agradeceria una manito gracias
Hola Juan David , la función tendría que adaptarse a tu caso concreto, para lo cual te recomiendo que revises la lista de reproducción ( th-cam.com/video/NvUVp4XoKlQ/w-d-xo.html ) sobre Google apps script para que te vayas familiarizando con el código y puedas realizar las adaptaciones de los ejemplos.
Este código de mi video esta adaptado para crear un solo pdf:
function combinarUnsoloDoc(){
var doc = DocumentApp.getActiveDocument(); //obtiene el doc activo
var id =doc.getId(); //obtiene si id para usarlo y mas adelante generar una copia
var folder = DriveApp.createFolder("Combinar correspondencia-" + fecha()); //crea una carpeta con nombre especifico
//------------------------ Datos opconales no se requieren para la correspondencia --------------------------------------------
var url ="th-cam.com/channels/WwxqBe1XjyLfbQy50HhEtQ.htmlplaylists";
var web = "sites.google.com/view/ofimaticaparaemprendedores";
//----------------------------------------------------------------------------------------------------------------------------
//for (var i = 0; i < listaDeNombres().length; i++) {
var CreaMiCopia = DriveApp.getFileById(id).makeCopy(listaDeNombres()[0] + "-" + fecha(), folder); // crea la copia del doc
var idCopia= CreaMiCopia.getId(); //obtiene el id de la copia
var copiaDoc = DocumentApp.openById(idCopia); //abre la copia para poder ser editada
var copia = copiaDoc.getBody(); //obtiene el contenido del body
copia.replaceText("", listaDeNombres()[0]); //remplaza etiquetas por el dato
copia.replaceText("", listaDeCategoria()[0]);
copia.replaceText("", listaDeCursos()[0]);
//----- hasta la linea anterior se hace el cambio de datos, las sig 5 lineas son innecesaria para combinar correspondencia ------
copia.replaceText("BASE DE DATOS: HCG", "");
copia.appendParagraph("aprende más con Ofimática para Emprendedores").setLinkUrl(url).setBold(true);
copia.getImages()[0].setLinkUrl(url);
copiaDoc.getFooter().clear();
copiaDoc.getFooter().setText("Visita mi WEB 🌍 ").editAsText().setLinkUrl(web).setBold(true).setFontSize(16).setBackgroundColor("#FFFF00");
//------------------------------------------------------------------------------------------------------------------------------
copiaDoc.saveAndClose(); //guarda cambios y cierra el archivo 0> equivale a flush en Google sheets.
var pdf = folder.createFile(copiaDoc.getAs('application/pdf'));//crea el pdf
DriveApp.getFileById(idCopia).setTrashed(true) //elimina el doc y deja el PDF.
//}
DocumentApp.getUi().alert("Documentos creados exitosamente!! 😎");
}
te recuerdo que usa funciones auxiliares que debes revisar e incluir si intentas reproducir mi ejemplo
suerte con la adaptación.
@ muchas gracias amigo logre adaptarlo para que imprima los documentos con un filtro por cedula, pero este codigo tiene algunos inconvenientes para mi:
1.genera una sola carpeta por registro- yo quiero : como puedo hacer que guarde los registros en una carpeta que yo determine me serviria mucho para el orden en vez de que me genere una por cada pdf creado.
2. al querer poner alguna fecha me la muesra en el formato ejemplo: Fri Jan 01 2021 00:00:00 GMT-0500 lo muestra en ingles y con la informacion de hora y zona horaria lo que me es inconveniente, haz podido colocarlo en español con el formato tipo ejemplo : el dia 5 de abril de 2021?
que pena abusar de tu conocimiento me suscribo
@@juandavidvargashernandez9160 en los enlaces que te brinde están funciones auxiliares que crean la fecha solo tienes que usar su código:
function fecha(){
var fecha = Utilities.formatDate(new Date(), "GMT-06:00", "dd-MM-yyyy");
Logger.log(fecha);
return fecha;
}
o puedes usar la variable fecha e incluirla como parte del código
@@juandavidvargashernandez9160 creo que no respopndi del todo, para crearlo en una carpeta puedes usar var tucarpeta = DriveApp.getFolderById('id de tu carpeta'):
revisa el método en:
developers.google.com/apps-script/reference/drive/drive-app#getfolderbyidid
Buenos días. Dónde se podría encontrar el código para poder implementarlo ? Muchas gracias. Y otra pregunta, cuando la segunda parte ?? Un abrazo
Aitor Díaz
Hola Aitor (prevención), mi recomendación es que vayas paso a paso en el video y escribas el código, ya que si solo copias-pegas te brincaras la oportunidad de aprender y entender algo del código, lo digo por experiencia propia, eso te ayuda a manejar y entender el código con miras a realizar adaptaciones, con independencia de esta sugerencia , colocare el código en mi web de ejemplos sites.google.com/view/ofimaticaparaemprendedores y espero tener listo el articulo en los próximos días.
En cuanto a la segunda parte eso dependerá del interés de mi grupo de suscriptores, si veo que le video despunta en vistas y comentarios , seguro que habrá segunda parte, pero tampoco voy a hacer videos que no les interese a mis suscriptores., así pues ,el vídeo de momento esta en fase de prueba como todos los demás, saludos.
listo articulo terminado con el código incluido para copiar y pegar....salu2
sites.google.com/view/ofimaticaparaemprendedores/Hojas-de-Calculo/combinar-correspondencia-entre-google-docs-y-sheets
@ Muchísimas gracias. No obstante, quisiera consultarle si pudiera ayudarme con lo siguiente. Si quisiera que se generara un documento PDF de forma automática cuando se rellena una nueva fila y lo reenviara a un email (previamente solicitado), como se podría hacer ? ( Esto sería la bomba, ya que sustituiría al complemento autocrat que solo se ejecuta cuando se introducen los datos vía formulario). Muchísimas muchísimas gracias por adelantado, tanto por el código anterior como por la ayuda. Voy a compartir con todos mis contactos su canal.
@@prevencionloiregestamp2735 tengo un ejemplo de activadores en mi vídeo más reciente th-cam.com/video/5NvPKQ6MtDo/w-d-xo.html por si gustas darle un vistazo.
por otra parte, la importancia de adaptar código radica en que podamos tomar parte de un ejemplo y parte de otro y armar nuestras propias soluciones, esto puede ser más fácil si conoces algo de excel o de macros en excel, pero si no, también tengo otro video para que vayas calentando motores th-cam.com/video/x47S7ylEsaM/w-d-xo.html
en cuanto al apoyo; por la naturaleza de mis funciones será limitado y el proceso bastante lento, así que no es buena opción si tienes prisa en resolver, en caso contrario necesitaría que prepares una HCG(hoja de calculo de Google) de ejemplo y que me des acceso de edición, además del permiso de obtener una copia para facilitar a otros interesados en su caso y la autorización de tu parte para crear un video explicativo y subirlo a mi canal, por lo cual se requiere que no des información sensible, si estas de acuerdo házmelo saber.
A ver tengo poca idea, de scripts, pero abri el google scripts (desde el sheets) porque no pude desde google docs, y solo puse este codigo...function onOpen(e) {
DocumentApp.getUi()
.createMenu('💌 Comb.Correspondencia');
}
Y lo guarde.
Luego abri cualquier documento de google docs y crei que deberia ejecutarse y salir esa opción de menú, aunque no saliera nada.. Es así, o que estoy haciendo mal?
Hola Miguel.- eso solo mostrara un menú personalizado en la interfaz de Googl Docs, pero no tiene ningún elemento asociado para que puedas ejecutar un script y además obviamente falta el script a ejecutar.
te recomiendo ver primero este video.-th-cam.com/video/GQdpmMA2w0g/w-d-xo.html
aunado a lo anterior y dado que tu mismos dices no tener idea de Google apps script, lo mas razonable es que , para el caso de este video lo hagas absolutamente todo igual, ya que esta probado que es funcional, así no tendrás fallos.
Hola. Quería consultar por un problema que tengo cuando extraigo la información de la planilla sheets. Resulta que tengo en una columna la cual posee un número de DNI o identificación personal el cual está con puntos por ejemplo: 11.111.111., cuando creo el documento docs. y se reemplaza los valores en la ubicación de la hoja que corresponde éste me lo hace SIN los puntos. Llevo días tratando de encontrar que código puedo colocar para que me respete tal cual esta en planilla hacia el docs. el DNI, pero he fracasado. Me podrías ayudar??
Hola Gaspar.- para poder ayudarte necesito mucho de tu cooperación , ya que me es imposible recordar cada código de ejemplo que he difundido por este medio.
en principio te aconsejaría que sustituyas la manera en que obtienes los datos de la hoja de calculo, deberías de estar usando el metodo getValue() o getValues(), este cámbialo por getDisplayValue() o Values(), segun se use uno u otro y me comentas.
@ Estimado. Eres un genio total. Llevo días investigando videos tuto meticulosamente además de buscar en Google developer funciones que apliquen al caso como así también consultas IA Bard de Google y en ningún lado me encontré que con la extracción de datos de la planilla sheet usando getDisplayValues() iba a obtener el resultado que buscaba, de hecho lo tenía como opción pero no pensé que llegara influir en la toma de datos. Los tutos para explicar que encontré para combinar correspondencia usan getValues para todo, que anda perfecto, pero en mi caso llevo números de identificación personal separados con puntos y necesitaba que los reemplazara tal cual en la hoja de documento que sea crea nueva. De hecho llevo 4hs viendo varios tu videos explicativos, y he aprendido mucho más. Te agradezco mucho que me hayas respondido. En lo que pueda colaborarte me avisas. Saludos.
gracias Gaspar, por regresar y validar la sugerencia como valida para ese tipo de problemas, muchos otros se beneficiaran ante este tipo de circunstancias....salu2
Duda, se puede hacer algo similar pero con Microsoft 365 (nube)
Hola Rafael.- desde hace mas de 7 años deje de usar MSO y excel, así que no sabría decirte 🤷♂️, este es un canal sobre las herramientas de Google
No existe combinar correspondencia para Google Docs! Pero se puede programar como en este caso o en su defecto utilizar un complemento como Autocrat. Saludos!
ciertamente Luis, el ejemplo es solo para practicar un poco con código, y alentar a las personas interesadas en ello a que practiquen...Salu2
Autocraf es mas sencillo, saludos.
esa utilidad es un complemento , aquí intentamos aprender código desde cero para no depender de ese tipo de utilidades de terceros, son 2 cosas diferentes, si no te gusta crear código, es lógico que lo prefieras, la parte en contra es que serás dependiente siempre y no podrás hacer adaptaciones o personalizaciones, te limitaras a usarlo, pero se respeta.🤷♂️