我目前有一个Google表格,可以通过第三方提交的表单接收数据。我正在尝试编写一个脚本,每次提交唯一的UserID时都会创建一个新工作表。
例如,如果我有5个用户ID为A,B,B,C,C的提交,我试图让脚本为A,B和C创建一个唯一的工作表,并在其中将重复的UserID提交分组片。我认为为用户ID过滤的数据透视表可以完成其中的后半部分,但我仍无法弄清工作表的创建是否可以对其进行测试。
到目前为止,这是我一直在使用的代码:
function formSheet(e) {
var sheetName = e.namedValues['user-id'][0];
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
if (!sheet) {
sheet = ss.insertSheet(sheetName);
var formSheet = e.range.getSheet();
var headers = formSheet.getRange(1, 1, 1, formSheet.getLastColumn());
headers.copyTo(sheet.getRange(1, 1));
}
sheet.appendRow(e.values);
}`
作为参考,带有数据的工作表标题为“提交”,而我想要的数据位于第2列的标题“ User-Id”下
答案 0 :(得分:0)
尝试一下:
您在脚本中使用了“用户ID”,在问题中使用了“用户ID”,这是哪个?
function formsheet(e) {
Logger.log(JSON.stringify(e));
var ss=SpreadsheetApp.openById('ssid');
var name=e.namedValues['user-Id'][0];
var shts=ss.getSheets();
if(shts.indexOf(name)==-1) {
var sh=ss.insertSheet(name);
var hdrs=e.range.getSheet().getRange(1,1,1,e.range.getSheet().getLastColumn()).getValues()[0];
sh.appendRow(hdrs);
}else{
var sh=ss.getSheetByName(name);
}
sh.appendRow(e.values)
}