首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设置在Google工作表中添加新工作表的通知?

如何设置在Google工作表中添加新工作表的通知?
EN

Web Applications用户
提问于 2015-10-10 20:00:10
回答 1查看 871关注 0票数 2

我是一大群共享谷歌电子表格的用户之一,如果有人能帮我想出一种方法来设置即时通知,我会很感激,特别是当有人向电子表格中添加一个新的表格时。

我尝试过通过工作表的工具设置通知规则,用于何时更改和提交新表单,但这将证明很麻烦,即使使用即时电子邮件和每日摘要电子邮件选项,因为电子表格是由一个大型组共享的,他们在一天内频繁地编辑单个单元格,还因为现有的规则将导致我收到大量电子邮件,但我只想从组中的两个特定用户那里获得通知(必须立即通知)。

我确实明白,可能会为此编写一个脚本,但我没有脚本的背景或理解,也无法在Google脚本库或新的附加功能中找到脚本。我也做了一个密集的互联网搜索论坛和积压堆问题,但没有任何效果。是否也可以将通知电子邮件设置为只发送给我个人,而不是名单上的其他任何人?

我希望我已经清楚我的问题,并希望在这件事上有任何帮助。

EN

回答 1

Web Applications用户

回答已采纳

发布于 2015-10-10 22:23:50

一种方法是使用事件对象: INSERT_GRID的INSERT_GRID属性意味着添加了一个表。这就是这样一个剧本。您应该填写YOUR_EMAIL占位符,并设置一个触发器(使用参考资料>当前项目的触发器),以便在每次更改时运行“通知”函数。

代码语言:javascript
运行
复制
function notify(e) {
  var ss = e.source;
  if (e.changeType == 'INSERT_GRID') {
    var subject = 'New sheet added to ' + ss.getName();
    var body = 'New sheet was added to spreadsheet ' + ss.getName() + ' located at ' + ss.getUrl();
    MailApp.sendEmail('YOUR_EMAIL', subject, body);      }
}

另一种方法是使用脚本来存储表的数量,并比较存储的和当前的值。它应该以与第一个版本相同的方式触发。

代码语言:javascript
运行
复制
function notify() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();  
  var scriptProperties = PropertiesService.getScriptProperties();
  var numSheets = scriptProperties.getProperty('Sheets');
  if (numSheets > 0 && ss.getSheets().length > numSheets) {
    var subject = 'New sheet added to ' + ss.getName();
    var body = 'New sheet was added to spreadsheet ' + ss.getName() + ' located at ' + ss.getUrl();
    MailApp.sendEmail('YOUR_EMAIL', subject, body);      }
  scriptProperties.setProperty('Sheets', ss.getSheets().length);
}

其他脚本插入

上述假设假设工作表仅手动添加到电子表格中。如果其他脚本以编程方式添加工作表,则不会触发“更改”事件:触发器仅由用户操作触发。

因此,如果希望以编程方式修改工作表,则有两个选项:

  1. 添加工作表的脚本应该自己发送电子邮件。
  2. 应该将函数notify (第二个版本,而不是第一个版本)设置为每隔一段时间(例如每小时)运行,而不是触发"onChange“。
票数 2
EN
页面原文内容由Web Applications提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://webapps.stackexchange.com/questions/85368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档