Похоже, что в настоящее время приложения Android Sheets не работают ни с изображениями, ни с пользовательскими пунктами меню. Я предлагаю создать «меню функций» в электронной таблице. Например:
- Ячейка А1 говорит «Выберите функцию»
- Ячейка B1 имеет правило проверки данных, которое ограничивает содержимое именами функций, которые у вас есть. В моем примере это «insertSomething» и «convertSomething». (Не проверяйте «показать справку» в диалоговом окне проверки данных, всплывающее окно «Справка» раздражает на мобильном телефоне.)
- Функция скрипта
onEdit
(простой триггер), выполняемая при каждом редактировании, проверяет, изменилось ли содержимое B1. Если это так, он запускает соответствующую функцию.
Вот мой код с двумя функциями, включенными для демонстрации:
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');
}
Условие /^\w+$/.test(e.value)
- просто проверить, что у нас есть непустая строка, и мы не выполняем вредоносный код, который кто-то каким-то образом поместил в ячейку B1. После вызова функции с помощью this[e.value]();
( this
относится к глобальному объекту и содержит имена функций) содержимое B1 очищается. Можно выбрать снова запустить ту же функцию или другую.
В качестве подтверждения концепции, вот скриншоты из приложения. Снимок экрана 1: выбор функции
Снимок экрана 2: после запуска функции
Ссылки