Enviar PDFs masivos personalizados con gráficas y tablas desde Google Sheets y Google Apps Script

Поделиться
HTML-код
  • Опубликовано: 9 янв 2025
  • En este video vemos como crear múltiples PDFs personalizados a partir de una pestaña con un dashboard o informe, el cual puede tener gráficas, tablas dinámicas y más
    👍 Si te ha gustado este video, te encantará el curso gratis "Aprende Google Sheets en 2 horas". Aquí puedes obtener acceso juansguzman.co...
    📋 Puedes encontrar el código y la plantilla de este video (y los más de 350 videos del canal) suscribíendote a mi academia JuanSGuzman - juansguzman.co...
    🎓Allí mismo, encontrarás una serie de cursos de creación y envío de PDFs desde Google Sheets asi como más de 75 cursos completos de Sheets, Forms y Apps Script. Aquí puedes verlo juansguzman.co...
    📝 Puedes encontrar este tutorial en forma escrita aquí juansguzman.co...
    🔔 Suscríbete al canal donde recibirás nuevos videos semanales de Sheets, Forms, Apps Script y más.
    Aquí algunos canales donde me puedes seguir y apoyar:
    📨 - Newsletter: juansguzman.co...
    ➤Patreon: juansguzman.co...
    ➤Telegram: juansguzman.co...
    ➤Instagram: juansguzman.co...
    ⓕ - Facebook: juansguzman.co...
    ➤Tiktok: juansguzman.co...
    𝕏 - (Twitter): juansguzman.co...
    Cualquier sugerencia, pregunta o inquietud, te invito a comentar más abajo
    📝 Listas de Reproducción relacionadas
    Crear PDFs - • Como crear PDFs desde ...
    ▶️Videos Relacionados
    Crear PDFs desde 0 a partir de archivos, hojas o rangos de Google Sheets - • Como crear PDFs desde ...
    Enviar un PDF a partir de datos de una tabla- Parte 1 - • Generar un documento d...
    Enviar un PDF a partir de datos de una tabla- Parte 2 - • Generar masivamente do...
    Enviar un PDF a partir de datos de una tabla- Parte 3 - • Enviar PDFs personaliz...
    Función FILTER - • Funciones Avanzadas en...
    Tablas dinámicas - • Crear Tablas Dinámicas...
    Características del nuevo editor de Google Apps Script 2020 - • Explorando las princip...

Комментарии • 73

  • @JuanSGuzman
    @JuanSGuzman  3 года назад +2

    Como bien me lo reporto un alumno de la academia, puede haber un problema cuando tenga que crear muchos reporte (más de 50 o 100), ya que el límite de tiempo de ejecución es de 6 minutos. Aquí si podemos usar el sleep u otras técnicas. Quedo pendiente de sus sugerencias para ver si podemos hacer otro video para estos casos.

    • @gus1191986
      @gus1191986 3 года назад +1

      Excelente Sr. Juan, como todos tus videos.... Sugiero que hagas un video donde se explique paso a paso poder imprimir dichos reportes, obviamente de manera automática con GAS. He buscado información al respecto y entiendo que es super COMPLICADO.

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      @@gus1191986 Hola
      Te refieres a imprimirlo físicamente en una impresora?
      Un gran saludo!

    • @gus1191986
      @gus1191986 3 года назад +1

      @@JuanSGuzman si correcto. Imprimirlo físicamente en una impresora.

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      @@gus1191986 Excelente. Lo investigo. Saludos!

    • @ferrermacias
      @ferrermacias 3 года назад

      Uy en que video sale eso del SLEEP me suena interesante y necesario para mí. Pasaba por aquí a pedirte algo Juan, cuando no yo jodiendo je, quisiera saber si hay alguna formula que indique en que ubicación se encontraba el dato que mandé a buscar.
      Desarrollo: hago un QUERY sobre una tabla de 4000 datos mas o menos, en la celda contigüa uso varios BUSCARV para hacer unas restas según determinadas sitaciones, me gustaría ahorrarle el tiempo de buscar al BUSCARV incorporandole la dirección de la busqueda realizada por el QUERY.
      Desde ya muchas gracias Juan por tu tiempo

  • @rrubik1088
    @rrubik1088 Год назад +1

    Excelente video, muy practico y didactico, felicitacionies. Un capo

    • @JuanSGuzman
      @JuanSGuzman  Год назад

      Hola!
      Gracias a ti por tomarte el trabajo de comentar!
      Saludos!

  • @JC852654SN
    @JC852654SN 3 года назад +3

    Excelente conocimiento, si asi es el instructivo en esta plataforma, las clases han de ser aun mejor

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      Mil gracias por tus palabras!

  • @irvingromanchavezjamaica3169
    @irvingromanchavezjamaica3169 2 года назад +1

    Eres genial ... tu tutorial me acaba de ayudar mucho para la generación de PDF con datos dinamicos ..

    • @JuanSGuzman
      @JuanSGuzman  2 года назад

      Hola
      Excelente! Me alegra ser de utilidad.
      Un gran saludo!

  • @javierdonoso9980
    @javierdonoso9980 2 года назад +1

    Están muy buenos tus videos, es muy productivo lo que enseñas y de una forma clara y precisa, felicitaciones y muchas gracias.

  • @benjaminalonso4630
    @benjaminalonso4630 3 года назад +1

    Me costó adaptarlo, pero lo he conseguido, realizo feed a ejecutivos con datos concatenados con una serie de formulas, me vino a ayudar mucho esta programación. gracias.

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      Excelente!
      Me alegro lo hayas conseguido
      Saludos!

  • @monicagonzalez2611
    @monicagonzalez2611 2 года назад

    Muchas gracias Juan por estos aportes, todos los tips son de mucha ayuda, que tengas un excelente día.

    • @JuanSGuzman
      @JuanSGuzman  2 года назад

      Hola!
      Mil gracias por las palabras!
      Saludos!

  • @oscarlovarvo
    @oscarlovarvo 3 года назад +1

    Muy buen video Juan! Use cosas de este y del de generar PDF para manda una hoja por mail y salio excelente! Como siempre digo, en tus videos hay mucha info adicional al tema que estas charlando y los comentarios de cada video son otro extra ya que la gente que te sigue aporta con muy buenas preguntas que vos respondes y hacen un combo perfecto! Muchas gracias por compartir!

    • @JuanSGuzman
      @JuanSGuzman  3 года назад +1

      Mil gracias Oscar
      Como siempre que amables comentarios, que motivan a seguir
      Saludos!

  • @rjcomunicaciones
    @rjcomunicaciones 3 года назад +1

    Muchas gracias Juan S. Guzmán!!!

  • @selenecat1676
    @selenecat1676 3 года назад +1

    Muchas gracias por compartir, excelente video, saludos y bendiciones.

  • @doctorsapolini7040
    @doctorsapolini7040 3 года назад +1

    Magnífico, como siempre, Juan!

  • @MarcoGarcia-yd8wy
    @MarcoGarcia-yd8wy 3 года назад +1

    te agradeceria si pudieras hacer uno para 50 o mas personas, realmente me gusta tu contenido, solo no entiendo por que no tienes mas likes o suscriptores, tu contenido vale realmente la pena!

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      Hola MArco
      Mil gracias por tus palabras!
      Si, ya es hora de hacer una segunda parte
      Un gran saludo!

  • @sergiocaracciolo4444
    @sergiocaracciolo4444 2 года назад

    Estimado Juan, me estoy reventando la cabeza con el setValue(Url) luego del envío de cada mail. Tus videos son lo mas! Pero si me puedes contestar ese punto, podria al fin descansar jaja.
    Gracias.
    Slds.

    • @sergiocaracciolo4444
      @sergiocaracciolo4444 2 года назад

      Mis amigos! Lo resolví! no usando foreach (me tiene de hijo), adapte el código para usar un bucle i. Todo gracias a Juan!

  • @denicolas260
    @denicolas260 3 года назад

    Excelente lo máximo Juan 20

  • @carlosgonzalezlizarazo4515
    @carlosgonzalezlizarazo4515 3 года назад

    Excelente video, Crack.

  • @JuanSGuzman
    @JuanSGuzman  3 года назад +2

    Gracias a Andrés y Giancarlo de la academia que descubrieron que se resuelve el error de que a veces crea archivos html y pdf añadiendo la linea Utilities.sleep(10000) dentro del forEach, al final. Esto se debe a que el proceso de creación de archivos toma entre 5 y 7 segundos, por lo que si le damos 10 segundos de espera resuelve este error

  • @hernandoeg
    @hernandoeg 2 года назад +1

    Hola Juan. El video es genial. Tuve los dos problemas: en el que se me genera una página del pdf con el inicio de sesión y en el que me genera el html. Pero con la respuesta que le diste a José Minjares, me quedó todo resuelto. Ahora quiero saber, cómo reemplazo el archivo que se me genera. Es decir, que no tenga un montón de copias del mismo, cada vez que lo genero, sino que se reemplace el archivo anterior. En este caso, que no se me modifique el link del archivo. Muchas gracias por tus videos y ayudas, ya mismo voy a suscribirme

    • @JuanSGuzman
      @JuanSGuzman  2 года назад

      Hola Hernando
      No hay forma (que yo sepa) de reemplazarlo directamente
      Lo que se me ocurre es que borres el que haya en la carpeta antes de crear el nuevo
      Saludos!

    • @hernandoeg
      @hernandoeg 2 года назад +1

      @@JuanSGuzman Muchas gracias por la respuesta. Si, también hice lo de borrar el archivo, pero el problema es que el link cambia y es lo que quería conservar. Seguiré cacharreando y si encuentro solución, no dudaré en realimantar. Muchas gracias

    • @JuanSGuzman
      @JuanSGuzman  2 года назад

      @@hernandoeg Quedo pendiente. Saludos!

  • @JoseEGarza-kh3jb
    @JoseEGarza-kh3jb 2 года назад

    Genio

  • @mauriciorolon
    @mauriciorolon 3 года назад +1

    Hola Juan.. te felicito por tus videos.. la verdad me ayudaron muchísimo en varias cuestiones de base de datos. Te hago una consulta si se puede usar Google Sheets como datalogger de una aplicación de Windows. Saludos y gracias

    • @JuanSGuzman
      @JuanSGuzman  3 года назад +1

      Hola Mauricio
      Mil gracias por tus palabras!
      Te confieso total ignorancia en cuanto a ese tema.
      Te lo quedo debiendo
      Un gran saludo!

  • @jacoblopez2017
    @jacoblopez2017 Год назад +1

    Juan he seguido a paso tu programacion, algunos ejemplos si me funcionan. Este caso, me crea un archivo en xhtml, que no se puede leer, es decir no lo convierte a PDF, tiene que ver con la version de sheets?

    • @JuanSGuzman
      @JuanSGuzman  Год назад

      Hola!
      No, revisa la parte del fetchUrl que las comas y todo esten igualitas, a ver si te funciona
      Saludos!

  • @alejandrabc3325
    @alejandrabc3325 11 месяцев назад

    Hola,
    Una duda, alguien sabe si hay forma de que en el pdf aparezca el encabezado y pie de pagina que tiene el spreadsheet? O si se pueden asignar directamente desde el codigo?

  • @lubiano84
    @lubiano84 3 года назад +2

    No existe la función delay?

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      Hola!
      Hasta donde se, no existe en google apps script. No se si de pronto se pueda instalar
      Un gran saludo!

  • @deberiainteresarte1475
    @deberiainteresarte1475 Год назад +1

    Una pregunta. ¿autocrat es gratis? ¿Se puede generar pdfs sin límites?
    Auotcrat es un complemento de google sheet que genera pdfs de personalizados

    • @JuanSGuzman
      @JuanSGuzman  Год назад

      Hola!
      Creo que es freemium, o sea que tienes un límite de pdfs a generar o algo asi
      Saludos!

  • @judithtorres8463
    @judithtorres8463 3 года назад +1

    Hola Juan, una consulta, como instalo el Foreach?ya que no aparece activa en la macro

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      Hola!
      No hay que instalar nada
      Simplemente tienes que asegurarte que de lo q estas haciendo forEach es un arreglo
      Esto lo puedes hacer con este comando
      Looger.log(arreglo)
      Y te tiene que salir algo asi
      [["valor1","valor2"],
      ["valor1","valor2"]]
      Saludos!

  • @joseminjares5619
    @joseminjares5619 3 года назад +1

    Hola, Juan.
    Son excelentes tus videos. Muchas gracias por hacerlos.
    Realice el ejercicio, pero me enfrente y enfrento a varios problemas. 😅
    El primero si lo pude resolver no me generaba pdf solo código html, con un gesAs como lo haces en uno de tus videos, en lugar de un getBlob. Y ya me salió un pdf.
    Ahora me sale el pdf, pero no de la hoja que le pido, si no de una imagen de account access. ¿Qué crees que pueda ser?

    • @JuanSGuzman
      @JuanSGuzman  3 года назад +1

      Hola!
      Te cuento que me pasó volviéndolo hacer lo mismo
      Cópiate el código exacto a ver como te va
      Aquí te dejo la plantilla 🤫
      docs.google.com/spreadsheets/d/1_RXq6IBjen4p1MYbRxksqU3Sx0-Jl58kjgpY95Ks0aY/copy
      Saludos!

    • @joseminjares5619
      @joseminjares5619 3 года назад

      Muchas gracias, Juan.
      Una disculpa por la tardanza en mi respuesta.
      Si sirvió, te agradezco mucho.

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      @@joseminjares5619 Genial!

  • @MrJaimeLomeli
    @MrJaimeLomeli Год назад

    Que tal, Juan.
    Oye, la duda que tengo es acerca de la configuración de la página, más específicamente en la parte de los saltos de página, esto para asegurar que no salgan cortadas o truncas las tablas o gráficas.
    Si pudieras darme una orientación, estaría más que agradecido.

    • @matesyfaturas3783
      @matesyfaturas3783 Год назад +1

      Te paso la solución que estoy usando
      +'&size=11.8x8.7' //dimensiones en pulgadas sino (0=letter, 1=tabloid, 2=Legal, 3=statement, 4=executive, 5=folio, 6=A3, 7=A4, 8=A5, 9=B4, 10=B5)
      los valores que puse fueron por prueba y error, manteniendo mi rango al 100%

    • @MrJaimeLomeli
      @MrJaimeLomeli Год назад

      @@matesyfaturas3783 gracias, lo checaré

  • @luisvelandia4455
    @luisvelandia4455 3 года назад

    Hola JuanS muchas gracias por tus videos. Quisiera que los pdf que se crean los pueda visualizar cualquier persona con el enlace.. no se si me puedes ayudar

    • @JuanSGuzman
      @JuanSGuzman  3 года назад +1

      Hola Luis
      Trata con este
      archivo.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
      Un gran saludo!

  • @naikara25
    @naikara25 3 года назад

    una pregunta porque utilizas const en ves de var cual es la diferencia

    • @JuanSGuzman
      @JuanSGuzman  3 года назад +1

      Hola!
      la verdad creo que siempre se podria usar var y no hay problema
      const se usa para datos que nunca van acambiar...que se mantienen igual durante toda le ejeución
      Me imagino que en programas muy grandes es bueno diferenciarlos para gastar menos memoria de pronto, pero para los programas pequeños que hacemos no se si haya alguna diferencia.
      Un ingeniero de pronto nos podría resolver la duda
      Saludos!

  • @carlosgonzalezlizarazo4515
    @carlosgonzalezlizarazo4515 3 года назад

    Hola, Buen día es que que tenía una pregunta, me esta pasando algo que es lo siguiente, no me está generando el pdf, sino un archivo de texto html no se si me puedas ayudar sería lo mejor 🙋🏻‍♂️

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      Hola Carlos
      Ponle dentro del forEach al final esta linea
      Utilities.sleep(10000)
      Esto lo descubrieron dos alumnos de la academia (Andres y Giancarlo)!
      Saludos!

  • @carlosvega1088
    @carlosvega1088 3 года назад +1

    Buenas tardes , quería depronto una ayuda , por más que intento no me genera PDF , por lo contrario me genera doc Google según parece con formato Html

    • @JuanSGuzman
      @JuanSGuzman  3 года назад

      Puedes incluir el siguiente comando
      Utilities.sleep(10000)
      Al final del forEach (dentro de él)
      Saludos!

    • @alejandropalacios3736
      @alejandropalacios3736 3 года назад

      @@JuanSGuzman Hola buenas tardes, mcuhas gracias por los vídeos, disculpa ¿cómo quedaría esa línea el código?, tengo el mismo problema

    • @alejandropalacios3736
      @alejandropalacios3736 3 года назад

      ¿Cómo quedaría esa línea en el código?, nuevamente gracias.

    • @alejandropalacios3736
      @alejandropalacios3736 3 года назад

      Creo que no resolvió el problema.

    • @sergiocaracciolo4444
      @sergiocaracciolo4444 2 года назад +1

      Maestro, a mi me pasó. Lo resolví cambiando los permisos para compartir del googlesheet. Debe estar disponible para todos.

  • @rafaeladameperez7183
    @rafaeladameperez7183 3 года назад

    por favor ayudame! gracias

  • @santiagovega1731
    @santiagovega1731 Год назад +1

    17:39 eso le dije a mi alumna de la carrera cuando vino a que le enseñe hoja de calculo