从 Google 表单中删除重复项的函数
Function to remove duplicates from Google Form
我正在尝试为 google 电子表格制作一个脚本,该脚本将删除通过 google 表单提交的重复条目。本质上,google 表单将条目写入 google 电子表格,我希望自动删除与已通过表单提交的条目重复的任何 google 表单条目。这是我现在的代码:
function onFormSubmit(e) {
var sheet = SpreadsheetApp.openById("13ggBeSGGxhI291uPcIr0RudwxxKUigtNEN750Q2hCBM");
var data = sheet.getDataRange().getValues();
var newData = new Array();
for(i in data){
var row = data[i];
var duplicate = false;
for(j in newData){
if(row.join() == newData[j].join()){
duplicate = true;
}
}
if(!duplicate){
newData.push(row);
}
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
我知道它的某些部分仍然不正确,所以我希望有人可以帮助我更好地了解我做错了什么,以便我可以进行必要的更正。谢谢!
你打开了一个Spreadsheet对象,你还需要打开实际的sheet(一个spreadsheets 有一个或多个 sheets).
sheet class has a method clearContents()
, a spreadsheet 没有。
尝试SpreadsheetApp.openById("13ggBeSGGxhI291uPcIr0RudwxxKUigtNEN750Q2hCBM").getSheetByName(whateverYourResponseSheetNameIsAsAString);
。
至于为什么Spreadsheet class支持getValues()
而不支持clearContents()
,我不知道,好像不一致。对于前者,它隐含地是 运行 getActiveSheet()
。
我正在尝试为 google 电子表格制作一个脚本,该脚本将删除通过 google 表单提交的重复条目。本质上,google 表单将条目写入 google 电子表格,我希望自动删除与已通过表单提交的条目重复的任何 google 表单条目。这是我现在的代码:
function onFormSubmit(e) {
var sheet = SpreadsheetApp.openById("13ggBeSGGxhI291uPcIr0RudwxxKUigtNEN750Q2hCBM");
var data = sheet.getDataRange().getValues();
var newData = new Array();
for(i in data){
var row = data[i];
var duplicate = false;
for(j in newData){
if(row.join() == newData[j].join()){
duplicate = true;
}
}
if(!duplicate){
newData.push(row);
}
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
我知道它的某些部分仍然不正确,所以我希望有人可以帮助我更好地了解我做错了什么,以便我可以进行必要的更正。谢谢!
你打开了一个Spreadsheet对象,你还需要打开实际的sheet(一个spreadsheets 有一个或多个 sheets).
sheet class has a method clearContents()
, a spreadsheet 没有。
尝试SpreadsheetApp.openById("13ggBeSGGxhI291uPcIr0RudwxxKUigtNEN750Q2hCBM").getSheetByName(whateverYourResponseSheetNameIsAsAString);
。
至于为什么Spreadsheet class支持getValues()
而不支持clearContents()
,我不知道,好像不一致。对于前者,它隐含地是 运行 getActiveSheet()
。