this link may interest you
https://www.googlecloudcommunity.com/gc/AppSheet-Q-A/Image-within-SVG/td-p/552619
Sinceramente no pude automatizar bien el proceso pero te comparto lo que logré, quizá te ayude de algo
1.- Crear una tabla "Base64" con las siguientes columnas
Las fĂłrmulas son las siguientes:
Para [URL_Imagen]
CONCATENATE(
"https://www.appsheet.com/image/getimageurl",
"?appName=", ENCODEURL(CONTEXT("AppName")),
"&tableName=", ENCODEURL(CONTEXT("Table")),
"&fileName=", ENCODEURL([IMG])
)
Para [Imagen_Base64] y para [Texto_Base64]
CONCATENATE("data:image/png;base64,",[Parte1],[Parte2],[Parte3],[Parte4],[Parte5])
(El número de partes depende de qué tan grande es la imágen)
2.- Crear un script en appscript
Convertir imagen a Base64
function convertirImagenABase64(urlImagen) {
var imagen = UrlFetchApp.fetch(urlImagen).getBlob();
var base64 = Utilities.base64Encode(imagen.getBytes());
var partes = dividirCadena(base64, 49990);
return partes;
}
function dividirCadena(cadena, longitud) {
var partes = [];
var index = 0;
while (index < cadena.length) {
partes.push(cadena.substring(index, index + longitud));
index += longitud;
}
return partes;
}
La idea de este script es que te transforma la imagen a Base64, y divide el resultado en partes de 49990 caracteres (Con la finalidad de no superar el lĂmite por celda en GSheets)
3.- Configurar un Bot para ejecutar el script
Las fĂłrmulas serĂan:
Parte1 = INDEX([IMG a Base64].[Output],1)
Parte2 = INDEX([IMG a Base64].[Output],2)
Parte3 = INDEX([IMG a Base64].[Output],3)
Parte4 = INDEX([IMG a Base64].[Output],4)
Parte5 = INDEX([IMG a Base64].[Output],5)
Mi intención era que el script se ejecutara al agregar o editar, pero como las imágenes tardan en subirse el script se ejecuta antes de que la imagen esté disponible resultando en error
Para ejecutar el script puedes editar y guardar sin realizar cambios, o agregar una columna que te sirva como desencadenante o trigger del bot