Google 表单需要 post 处理写入 Google Sheet

Google Forms needing post processing writing to a Google Sheet

我们正在使用 Google 表单写入 Google 电子表格。我想在数据进入数据源时对其进行一些 post 处理。

我启动了以下代码。有没有办法隐式获取对活动电子表格的引用,或者我是否需要修改它以硬引用 id?

是否可以在到达 Google Sheet 之前拦截数据流并修改值?

function onFormSubmit(event) {
  // This function will be called everytime the form is submitted.
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses 1').getRange(SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses 1').getLastRow(), 4).setBackground('#4287f5');
}

解法:

您只需利用 event object:

function onFormSubmit(event) {
 const ss = event.source;
 const as = ss.getActiveSheet();
 if (as.getName()=='Form Responses 1'){
    as.getRange(as.getLastRow(),4).setBackground('#4287f5');
 }
}

请注意:

  • 有两个 onFormSubmit 触发器:一个用于 google sheets and one for google forms。在您的情况下,由于您想在电子表格中编辑某些内容,因此使用第一个更有意义。

  • 两者都是installable triggers,这意味着您需要通过脚本或手动安装它。要手动安装它,您可以单击项目的触发器,创建一个触发器,select onFormSubmit 作为函数和事件类型 On form submit.