【发布时间】:2021-03-03 12:33:06
【问题描述】:
当用户提交表单时,我尝试在同一文件夹中制作模板副本,然后根据用户在表单响应中提交的内容更新新复制工作表中的字段。
新工作表创建成功,但我在表单中得到的响应没有在新工作表中更新。 在代码中查找问题时需要帮助
错误显示:
TypeError:无法读取未定义的属性“0” 在 CopySheet(代码:32:63) 在 getResponse(代码:3:16)
function getResponse(e){
var response = e.response;
var sheetID = CopySheet(response);
}
function CopySheet(response) {
var ss = SpreadsheetApp.openById('1Q5XRV7E-m6IleX4vG2tqmJ104Osz6rb67tc8SA_1avk');
var ssname = ss.getSheetByName('Template');
var file = DriveApp.getFileById(ss.getId());
var folders = file.getParents();
while (folders.hasNext())
{
var folder = folders.next();
var FID = folder.getId();
}
var protection = ssname.getProtections(SpreadsheetApp.ProtectionType.RANGE);
var editors = protection[0].getEditors();
Logger.log(editors);
var TargetFolder = DriveApp.getFolderById(FID);
var CSheetID = DriveApp.getFileById(ss.getId()).makeCopy("CopiedTemplate", TargetFolder).getId();
var CopiedSheet = SpreadsheetApp.openById(CSheetID);
var ptc = CopiedSheet.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var j = 0 ; j<ptc.length ; j++)
{
ptc[j].addEditors(editors);
}
CopiedSheet.getRange('C1').setValue(response['S.C.O Number'][0]);
CopiedSheet.getRange('F1').setValue(response['Qty'][0]);
CopiedSheet.getRange('E2').setValue(response['PCBA Code'][0]);
DriveApp.getFileById(CSheetID).setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.EDIT);
return CSheetID;
}
编辑代码:
function getResponse(e){
var response2 = e.response;
var IResponse = response2.getItemResponses();
var SCO_Number = IResponse[0].getResponse();
var BOM_Code = IResponse[1].getResponse();
var qty = IResponse[2].getResponse();
var SID = CopySheet(SCO_Number,BOM_Code,qty);
}
【问题讨论】:
标签: javascript google-apps-script google-sheets google-forms