#google-apps-script #google-sheets
#google-apps-script #google-таблицы
Вопрос:
Я хотел бы предложить пользователю вводить данные в рабочую книгу через регулярные промежутки времени, используя поле ввода пользовательского интерфейса и скрипт Google Apps. Что-то вроде этого, но с добавлением таймера:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var timer = Browser.inputBox('New Data', 'How many minutes?', Browser.Buttons.OK_CANCEL);
ss.appendRow([timer]);
}
Есть ли способ заставить окно электронной таблицы быть активным при выключении таймера или каким-либо образом предупредить пользователя о вводе данных, если он перешел со страницы? ТИА!!!
Комментарии:
1. Вы смотрели на Spreadsheet.toast() ?
2. Привет ! К сожалению, вы не можете запустить Browser.InputBox или пользовательский интерфейс с помощью триггеров, основанных на времени . Почему вы хотите запустить поле ввода несколько раз через определенный промежуток времени? Сколько раз вам понадобится это поле ввода для запуска?
3. @Cooper это выглядит действительно аккуратно, но, похоже, не позволяет вводить данные.
4. @MateoRandwolf Изначально я хотел бы собирать данные о том, какой задачей я занимаюсь, когда срабатывает оповещение (через регулярные промежутки времени в течение определенного периода времени … скажем, каждые 5 минут в течение 30 минут, например). Я поведенческий аналитик по профессии, и я работаю над идеями, которые помогут с поведением при выполнении заданий для дистанционных учащихся.
5. Вы собираетесь, чтобы кто-то сидел там и смотрел электронную таблицу? Просто жду этого сообщения. Я думаю, я бы предпочел отправить электронное письмо или текстовое сообщение на их телефон и предоставить им веб-приложение для ввода данных.
Ответ №1:
Обходной путь
Из предоставленной вами информации и ваших требований (всплывающее диалоговое окно не только при работе с электронной таблицей, но и на любой странице браузера) Я думаю, что лучшим вариантом было бы создать или использовать расширение Chrome. Если вы хотите передать данные, полученные в этом расширении, в определенную электронную таблицу для регистрации активности пользователя, тогда вы хотите использовать Sheets API.
Проблемы с использованием simply Apps Script для этого сценария заключаются в следующем:
- Триггеры, основанные на времени, не могут запускать элемент пользовательского интерфейса, такой как Browser.InputBox() или getUi
- Диалоговое окно пользовательского интерфейса в электронной таблице останавливает выполнение скрипта до тех пор, пока он не будет отклонен. Это приведет к тому, что если ваш пользователь забудет добавить информацию и закрыть диалоговое окно, скрипт остановится, пропуская также следующие повороты.
- Пользователю потребуется открыть вкладку «Электронная таблица», поскольку скрипт управляет только тем, что происходит в электронной таблице, а не в браузере. Поскольку вы хотите отслеживать поведение независимо от того, на какой вкладке находится пользователь, я считаю, что для пользователя было бы лучше просто иметь расширение Chrome, которое выполняет эту работу.
Комментарии:
1. Спасибо! Я все еще работаю над тем, какие инструменты лучше всего подходят для каждой ситуации, и ваш ответ имеет большой смысл. Похоже, расширения Chrome используют те же инструменты, которые я изучал (HTML, CSS, JS), так что это идеально. Еще раз спасибо!