Google Apps Script Spreadsheet Автоматизация Комментариев

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

1.) Когда ячейка редактируется в электронной таблице Google, функция, которую я имею, устанавливает Примечание используя функцию (да, она говорит ячейки.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.) Для обоих типов "обозначения ячеек" существуют функции только для SET Примечание/комментарий, а не добавить (согласно документации).

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

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

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

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

2 ответов


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

вместо этого все методы" комментариев " работают с заметками.

следующий метод добавит новую "измененную" метку времени к любой существующей-к сожалению, не так хорошо, как фактический комментарий.

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);
}

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

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

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

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