17

今天我有一个关于 Google Apps 脚本的问题,特别是针对电子表格的问题。我已经查看了此处的文档(是的,电子表格中的工作上的文档),但我无法找到我要查找的内容。这是缝:

1.)当在谷歌电子表格中编辑一个单元格时,我使用该函数设置了一个注释(是的,它说cell.setComment(),但实际上它会创建一个注释。感谢您的一致,谷歌!):

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

2.) 自 2012 年 9 月 5 日起,注释已被评论“取代” ?也许?我宁愿使用那些。

3.)对于这两种类型的“单元格符号”,存在仅用于设置注释/注释的功能,而不是添加(根据文档)。

4.) 我想引用或编写一个能够添加新注释/注释的函数(最好是注释,它们更容易阅读),而不是设置注释/注释。

5.)您可以通过电子表格本身的 GUI 手动添加注释/注释(右键单击单元格并选择“插入注释”或“插入注释”。因为这些右键单击功能存在让我相信我们可以编写一个脚本来做同样的事情,但是当单元格被编辑时自动调用它。

6.) 此功能将用于跟踪单元格修订历史。我知道我可以轻松地创建一个新电子表格并将修订历史记录发送到该新电子表格,但考虑到我有 10 个电子表格需要跟踪,我宁愿没有 10 个新电子表格来跟踪历史记录。将其保存在同一个电子表格中将使事情变得简单。

如果有人可以帮助我,将不胜感激!

4

4 回答 4

16

无法通过电子表格服务处理评论 - 请参阅问题 36756650。(如果你愿意,可以加星标。)

相反,所有“评论”方法都适用于 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);
}
于 2013-03-23T04:28:33.057 回答
8

dic 2018 的更新答案:

现在 Google 在 Range 类中支持 setNote(String) 和 setNotes(Object[]) 方法。

getComment() 和 setComment() 方法不再存在。

于 2018-12-04T18:58:38.910 回答
6

在 Google Apps Script 中使用Google Drive API,我们可以在 Google 文档中创建评论。
经过测试,我确认您也可以在电子表格中执行此操作(这很正常,因为 Comments 仅取决于 Drive API)

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

请记住,您不能以编程方式将评论附加到单元格(或 Google 文档中的单词),因为文档和电子表格评论的锚点是专有的(在此处查看页面底部的视频)

希望它可以提供帮助。

于 2014-10-03T14:50:34.777 回答
0

Now you can use setNote() and getNote()

var sheet = SpreadsheetApp.getActiveSpreadsheet();
 var cell = sheet.getActiveCell();
 var comments = cell.getNote();
 cell.setNote(comments);
于 2021-05-19T06:29:24.347 回答