Как я могу получить электронную почту последнего пользователя, который изменил каждую ячейку - PullRequest
0 голосов
/ 22 февраля 2020

Попытка добавить «скользящую» заметку об изменениях в каждой ячейке, включая электронную почту пользователя, время, старые и новые значения, поэтому я написал следующий скрипт:

/**
 * The event handler triggered when editing the spreadsheet.
 * @param {Event} e The onEdit event.
 */
function onEdit(e){
  // Set a comment on the edited cell to indicate when it was changed.
  var range = e.range;
  var row = range.getRow();
  var column = range.getColumn();

  // Get the email address of the person running the script.
   var email = Session.getActiveUser().getEmail();

  Logger.log("data changed");
  range.setNote(range.getNotes().concat('Last modified at: ' + new Date() + ' by: ' + email + ' from: ' + String(e.oldValue) + ' to: ' + range.getValue() + "\n"));
}

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

  1. Электронная почта пользователя вообще не отображается,
  2. Если я сделал копирование / вставку нескольких ячеек, то старое значение отображается как неопределенное, а новое значение для всех ячеек отображается только новое значение первой ячейки.

Мой лист можно открыть здесь

1 Ответ

2 голосов
/ 23 февраля 2020

Информация, которую вы добавляете, уже автоматически записывается и становится доступной, если щелкнуть правой кнопкой мыши ячейку и выбрать соответствующий пункт меню. В любом случае, простой триггер редактирования очень ограничен по сравнению с устанавливаемым триггером редактирования, но Session.getActiveUser().getEmail() возвращает электронное письмо только в том случае, если сценарий запускается с использованием учетных записей G Suite, либо владельцем электронной таблицы / сценария, либо пользователем, созданным при установке триггера редактирования, который вызвал сценарий. Каким-то образом это уже задокументировано в официальных документах.

Ссылка

Связанные

...