редактирование метки времени на Google Doc через JavaScript - PullRequest
0 голосов
/ 22 марта 2019

Я создал этот фрагмент кода для автоматического обновления отметки времени, когда человек из моей группы открывает GoogleDoc

function onOpen() {
  var doc = DocumentApp.getActiveDocument();
  var userName = Logger.log(Session.getActiveUser().getEmail())
  var date = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy")
  var body = doc.getBody();

  switch (userName){
    case "xxx@gmail.com":
      body.replaceText("xxx.*$", "xxx" + date);
      break;
    case "yyy@gmail.com":
      body.replaceText("yyy.*$", "yyy" + date);
      break;       
    case "zzz@@gmail.com":
      body.replaceText("zzz.*$", "zzz" + date);
      break;

  }
}

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

1 Ответ

0 голосов
/ 24 марта 2019

Переменная userName установлена ​​неправильно.Вам следует заменить:

var userName = Logger.log(Session.getActiveUser().getEmail())

На:

var userName = Session.getActiveUser().getEmail()

Могу ли я предложить вам одно улучшение и, возможно, другое альтернативное решение?

Улучшение: Извлечь логин пользователя (xxx, yyy ...) из электронной почты, а затем избегать использования инструкции переключения.Это обеспечит развитие новых пользователей без изменения кода.

Альтернативное решение: Журнал аудита накопителя и панель мониторинга активности (конечно, толькоесли вы являетесь пользователем GSuite Business)

...