Схоже, на даний момент ні зображення, ні спеціальні пункти меню не працюють у додатку «Таблиці Android». Я пропоную створити "функціональне меню" в електронній таблиці. Наприклад:
- У комірці A1 написано "Вибрати функцію"
- В комірці 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: після запуску функції
Список літератури