【问题标题】:Google Sheets API V4 and google apps scriptGoogle Sheets API V4 和 google apps 脚本
【发布时间】:2017-05-14 07:06:17
【问题描述】:

我一直在使用 Sheets API v4 来允许授权用户将数据从表单输入到电子表格中。我想做的是让谷歌应用程序脚本在添加新数据时触发一个函数。我似乎无法让 on edit 触发器使用

function createSpreadsheetEditTrigger() {
  var ss = SpreadsheetApp.getActive();
  ScriptApp.newTrigger('makeLog')
      .forSpreadsheet(ss)
      .onEdit()
      .create();
}

function makeLog(){
Logger.log("New Entry")
}

有可能吗?

【问题讨论】:

    标签: api google-apps-script google-sheets


    【解决方案1】:

    下面的示例脚本怎么样?当 Sheet API v4 从外部编辑电子表格时,onChange() 成为它的触发器。因此,请将您的脚本从 onEdit() 更改为 onChange()。我准备了一个用于测试的示例脚本。

    当 Sheet API v4 编辑电子表格时,此示例脚本会发送一封电子邮件。我确认这工作正常。使用本示例时,请输入您的电子邮箱并首先运行createSpreadsheetEditTrigger()。这样,就安装了触发器。之后,通过 Sheet API v4 编辑电子表格。

    当通过 Sheet API v4 从外部编辑电子表格时,我使用 sendEmail() 作为示例,因为脚本编辑器已关闭。

    示例脚本:

    function createSpreadsheetEditTrigger(){
      var ss = SpreadsheetApp.getActive();
      ScriptApp.newTrigger('makeLog')
          .forSpreadsheet(ss)
          .onChange()
          .create();
    }
    
    function makeLog() {
      MailApp.sendEmail("### Your e-mail address ###", "test mail", "Spreadsheet was edited.");
    }
    

    如果我误解了你的问题,我很抱歉。

    【讨论】:

    • 欢迎您,也谢谢您。如果问题已解决,请按下接受按钮作为已解决的问题。其他人也可以使用这个问答。帮助是stackoverflow.com/help/someone-answers
    • 我能再问你一个问题吗?触发器在服务器上。有没有办法在客户端触发功能?
    • 您可以通过Web Apps使用newTrigger()的方法。 developers.google.com/apps-script/guides/…
    • 如果不是网络应用怎么办?
    • 如果它从外部客户端执行方法,它会考虑 Web 应用程序和执行 api。在安装触发器的情况下,它使用网络应用程序。关于这一点,因为我已经确认了这一点,请不要担心。另一方面,由于限制,无法执行api。 developers.google.com/apps-script/guides/rest/api#limitations
    猜你喜欢
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多