jueves, 17 de diciembre de 2020

Insertar logo en pestaña (código y proceso extraño)

Estoy haciendo una aplicación para crear actas y necesito que en la pestaña de cada acta aparezca como encabezado el logo del centro.

Quiero, además, que la imagen del logo esté en drive.

Como cada pestaña con cada acta se crea por código, no me vale el menú insertar-imagen-en celda, ya que, que yo sepa, no hay forma de hacerlo desde código.

Pero si puedo utilizar la función "image(url;[]) 

Pero la url que nos da drive de una imagen, utilizando "conseguir enlace" no funciona con esta función. 

Me funciona, sin embargo, la combinación de https://drive.google.com/uc?export=view&id= con el id de cada imagen.

Para hacerle la vida más fácil al usuario, le pido la url de "conseguir enlace" y mediante este trozo de código la convierto al tipo de enlace que he descrito en el anterior párrafo:

  

  var herramienta = SpreadsheetApp.getActiveSpreadsheet()

  var imagen_url = herramienta.getRangeByName('imagen').getValue()
  var imagen_primera_parte = "https://drive.google.com/uc?export=view&id="       
  var imagen_id imagen_url.match(/[-\w]{25,}/)
  var imagen = imagen_primera_parte+imagen_id

pestana.getRange('A1').setValue('=image("'+imagen+'";1)')

 

El código funciona perfectamente: desde la url extrae el id de la imagen y después la añade al enlace especial. Con la última fila del código, insertamos la imagen en la celda A1 con la función image.


Pero, me he encontrado con la SORPRESA que hay veces que la imagen aparece y otras que no.

Después de investigar y probar diferentes situaciones, me he encontrado con que aparece siempre la imagen si utilizamos un proceso muy particular.

 El proceso funciona así:

  1. Debemos subir la imagen desde el ordenador
  2. Debemos darle permiso público a la imagen(cualquiera con el enlace)

Sorprendentemente, no me ha funcionado con imágenes que ya estaban de antemano en mi Drive y, por supuesto, ninguna imagen que no tenga dado el permiso público de antemano.

No hay comentarios:

Publicar un comentario

Crear PDF horizontal

El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...