Parece que actualmente ni las imágenes ni los elementos de menú personalizados funcionan en la aplicación Sheets de Android. Sugiero crear un "menú de funciones" dentro de la hoja de cálculo. Por ejemplo:
- La celda A1 dice "Seleccionar una función"
- La celda B1 tiene una regla de validación de datos que restringe el contenido a los nombres de las funciones que tiene. En mi ejemplo, son "insertSomething" y "convertSomething". (No marque "mostrar ayuda" en el cuadro de diálogo de validación de datos, la ventana emergente "ayuda" es una molestia en el móvil).
- Una función de script
onEdit
(disparador simple), que se ejecuta en cada edición, verifica si el contenido de B1 ha cambiado. Si es así, ejecuta la función apropiada.
Aquí está mi código, con dos funciones incluidas con fines de demostración:
function onEdit(e) {
if (e.range.getA1Notation() == 'B1') {
if (/^\w+$/.test(e.value)) {
this[e.value]();
e.range.clear();
}
}
}
function insertSomething() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(2,3).setValue('inserted something');
}
function convertSomething() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(3,3).setValue('converted something');
}
La condición /^\w+$/.test(e.value)
es solo para verificar que tenemos una cadena no vacía y no estamos ejecutando código malicioso que alguien de alguna manera puso en la celda B1. Después de que la función se invoca con this[e.value]();
(se this
refiere al objeto global y contiene nombres de funciones), el contenido de B1 se borra. Uno puede elegir ejecutar la misma función nuevamente u otra.
Como prueba de concepto, aquí hay capturas de pantalla de la aplicación. Captura de pantalla 1: selección de una función
Captura de pantalla 2: después de que la función se haya ejecutado
Referencias