Google Apps Script Автоматизация комментариев к электронным таблицам

Сегодня у меня есть вопрос о скриптах Google Apps, в частности для электронных таблиц. Я уже рассмотрел документацию здесь (да, документация на листе в электронной таблице), но я не смог найти то, что искал, Здесь строчка:

1.) Когда ячейка отредактирована в электронной таблице Google, у меня есть функция SETS a NOTE с помощью функции (да, она говорит cell.setComment(), но на самом деле она создает заметку. Спасибо за то, что она совместима с Google.!):

function onEdit() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getActiveSheet();
var cell = sheet.getActiveCell();
cell.setComment("Last modified: + (new Date()));
}

2.) Примечания были заменены комментариями от... 5 сентября 2012 года? Может быть? Я предпочел бы использовать их вместо этого.

3.) Для обоих типов "нотации ячеек" существуют функции только для установки примечания/комментария, а не для ADD (согласно документации).

4.) Я хотел бы ссылаться или писать функцию, которая имеет возможность добавлять новую заметку/комментарий (желательно Комментарий, их легче читать) вместо установки примечания/комментария.

5.) Вы можете добавить примечание/комментарий через GUI в самой электронной таблице (щелкните правой кнопкой мыши ячейку и выберите "Вставить примечание" или "Вставить комментарий" ). Поскольку эти функции щелчка правой кнопкой мыши меняют, что мы могли бы написать script, чтобы сделать то же самое, но его следует называть автоматически магически, когда ячейка была отредактирована.

6.) Эта функция будет использоваться для отслеживания истории изменений ячейки. Я знаю, что я могу создать новую электронную таблицу и легко отправить историю изменений в эту новую таблицу, но учитывая, что у меня есть 10 таблиц, которые нужно отслеживать, я бы предпочел не иметь 10 новых электронных таблиц для отслеживания истории. Хранение его в одной и той же таблице упростит работу.

Если бы кто-нибудь мог мне помочь, это было бы признательно!

Ответ 1

Нет способа манипулировать комментариями через службы электронных таблиц - см. Проблема 2566. (Звезда, если хотите.)

Вместо этого все методы "Комментарии" работают над Notes.

Следующий метод добавит новую временную метку "Модифицированная" к любой существующей - не совсем так же красиво, как и настоящий комментарий. К сожалению,

function onEdit() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var cell = sheet.getActiveCell();
  var comments = cell.getComment();
  // Newline works in msgBox, but not in Note.
  comments = comments + "\\nModified: " + (new Date());
  //Browser.msgBox(comments);
  cell.setComment(comments);
}

Ответ 2

Используя API Google Диска в Google Apps Script, мы могли бы создавать комментарии в Документе Google.
И после теста я подтверждаю, что вы также можете сделать это в электронной таблице (что нормально, потому что комментарии зависят только от Drive API)

function insertDriveComment(fileId, comment, context) {
  var driveComment = {
    content: comment,
    context: {
      type: 'text/html',
      value: context
    }
  };
  Drive.Comments.insert(driveComment, fileId);  
}

Имейте в виду, что вы не можете прикрепить программно комментарий к ячейке (или слова в Google Document), так как анкеры для документов и электронных таблиц Комментарии являются собственностью (проверьте видео в нижней части страницы здесь)

Надеюсь, это поможет.

Ответ 3

Обновленный ответ для dic 2018:

Теперь Google поддерживает метод setNote (String) и setNotes (Object []) в классе Range.

методы getComment() и setComment() больше не существуют.