невозможно вызвать связанный скрипт из листов на iPad - PullRequest
0 голосов
/ 28 сентября 2019

Невозможно вручную вызвать связанный скрипт на листе Google при доступе с iPad с помощью приложения Sheets

Я создал связанный скрипт в таблице Google, к которому я хочу получить доступ с разных устройств.Основной лист содержит необработанные данные.Скрипт суммирует необработанные данные и помещает результаты во второй лист.Я создал пользовательское меню (ui.createMenu), чтобы позволить пользователю выбрать один из нескольких вариантов извлечения.

Это работало нормально, когда я загружал электронную таблицу в Chrome на ПК, но пользовательское меню не отображается, когда выоткройте электронную таблицу в приложении «Листы» на iPad.Поэтому я попытался добавить лист Dashboard с несколькими кнопками, связанными с функциями для различных параметров извлечения.Опять же, это прекрасно работает на ПК, но когда я открываю лист Dashboard на своем iPad и нажимаю одну из кнопок, он действует так, будто я пытаюсь отредактировать лист вместо запуска сценария.

1 Ответ

0 голосов
/ 30 сентября 2019

Невозможно редактировать элементы пользовательского интерфейса в мобильных версиях Sheets, а дополнения недоступны для iPhone и iPad , поэтому обходной путь не может быть выполнен таким же образом.

Для мобильных листов я использую функциональность onEdit(e) и объект события, чтобы обойти это:

Я замораживаю первую строку листа, чтобы она всегда была видимой, с раскрывающимся меню в B1, какпоэтому:

enter image description here

Затем код моего скрипта приложений проходит проверку в триггере onEdit(e), который сначала проверяет, было ли выполнено редактирование в ячейке.B1 и выполняет код, который мне нужен, исходя из выбора:

function onEdit(e) {
  if (e.range.getA1Notation !== 'B1'){
    return;
  }
  else{
    var selectedFunction = e.range.getValue();

    if (selectedFunction == 'myFunction()'){
      myFunction();
    }
    else if (selectedFunction == 'otherFunction()'){
      otherFunction();
    }
    else if (selectedFunction == 'thirdFunction()'){
      thirdFunction();
    }
  }
}

function myFunction(){
  // my code
}
function otherFunction(){
  // other code
}
function thirdFunction(){
  // third code
}

Я знаю, что это не идеальное решение, но я надеюсь, что оно может быть полезно для вашего случая.

...