用于从Google表单中删除重复项的功能

时间:2015-10-28 21:36:36

标签: javascript forms google-apps-script google-sheets google-form

我试图为谷歌电子表格制作一个脚本,删除通过谷歌表单提交的重复条目。基本上谷歌表格将条目写入谷歌电子表格,我希望任何谷歌表格条目与已通过表格提交的条目重复,将被自动删除。这是我现在的代码:

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);
}

我知道它的部分内容仍然不正确所以我希望有人可以帮助我更好地了解我做错了什么,以便我可以进行必要的更正。谢谢!

1 个答案:

答案 0 :(得分:1)

您打开了电子表格对象,还需要打开实际的表格(一个电子表格有一张或多张表格)。
sheet类的方法为group_concat(),而spreadsheet则没有。

尝试select make, group_concat(distinct year order by year) from models_auto group by make;

至于为什么Spreadsheet类支持clearContents()但不支持SpreadsheetApp.openById("13ggBeSGGxhI291uPcIr0RudwxxKUigtNEN750Q2hCBM").getSheetByName(whateverYourResponseSheetNameIsAsAString);,我不知道,它似乎不一致。对于前者,它隐含地运行getValues()