我希望从谷歌表单存储有关寄养动物的数据。本质上,它只会把输入到电子表格中的信息输入进去。这对于第一次提交很有效,但如果我想更改特定动物的记录信息,则不适用。我认为name是唯一标识符的最佳选择,因此我想编写一个脚本,如果输入了相同的名称,则通过给定列搜索该名称,然后重新填充该行。
这是我一开始就能做的事吗?另外,我的思考方式是否很落后?如果需要更多的信息,我很乐意提供。
在这种情况下,最好的方法是使用Apps Script触发器。
你可以从使用onFormSubmit
开始,它将在用户最终提交所需的表单时运行。
这是一个可安装触发器这意味着它需要先进行设置。
如果您计划使用表单来修改信息,您可以轻松地在表单中创建一个id
字段,并设置一个类似于以下内容的脚本:
function onFormSubmit(e) {
let ss = SpreadsheetApp.openById('SS_ID').getSheetByName('SHEET_NAME');
let idCol = ss.getRange('ID_RANGE').getValues();
let submissions = e.namedValues();
for (let i = 0; i < idCol.length; i++) {
if (idCol[i][0] == submissions.Id)
//update the sheet accordingly
else {
//add the new values to the sheet
}
}
}
为了从表格中收集提交的内容,使用了e.namedValues
。假设您在电子表格中有一列,其中存储了与表单中的项目相对应的每种动物的id,您可以简单地检查提交的表单是否针对现有的项目-因此您可以使用新信息更新它,或者只是简单地将新提交的内容添加到工作表中。
请记住,您将不得不调整它,使其适合您当前的设置。
参考Apps Script Installable Triggers;
Apps Script Event Objects.