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
.
我们正在使用 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
.