我正在尝试将链接的Google表单中的回复保存到现有的Google表格中。更准确地说,电子表格显示了雇员的休假请求,雇员的请假原因,请求的天数,请求的日期,经理的姓名等。基本上,表单会向雇员询问这些信息。
谢谢!
我在这里想要实现的是将响应信息保存到已经创建的电子表格中。根据Google的documentation,只有两个选项:
1)创建一个新的电子表格:为在Google表格中的响应创建一个电子表格
2)选择现有电子表格:从Google表格中的现有电子表格中进行选择以存储回复
对于选项#2,我可以将响应保存在同一电子表格中,但可以将其保存在新工作表中。我正在尝试将响应保存为相同
工作表。
我知道Google表单具有脚本编辑器。是否可以运行将响应发送到电子表格的函数?也许是这样的吗?
function sendToSpreadSheet(e)
{
var ss = SpreadsheetApp.openById("abc1234567");
// Send response to spreadsheet
// Populate cells accordingly
}
我对Google表单没有太多经验,所以不确定如何解决此问题。任何建议都将不胜感激。
答案 0 :(得分:1)
尝试一下:
您必须提供电子表格ID和SheetName。并为电子表格创建一个onFormSubmit触发器。
function saveResponse(e) {
SpreadsheetApp.getActive().getSheetByName('SheetName').append(e.values);
}
或
function saveResponse(e) {
SpreadsheetApp.openById('id').getSheetByName('SheetName').append(e.values);
}
您可以使用以下内容创建触发器:
function createSetResponseTrigger(){
createTrigger('setResponse');
}
function createTrigger(funcname) {
if(!isTrigger(funcname)) {
ScriptApp.newTrigger(funcname).forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
}
}
还有这个
function isTrigger(funcName){
var r=false;
if(funcName){
var allTriggers=ScriptApp.getProjectTriggers();
for(var i=0;i<allTriggers.length;i++){
if(funcName==allTriggers[i].getHandlerFunction()){
r=true;
break;
}
}
}
return r;
}
或者您也可以使用“编辑菜单” /“当前项目触发器”手动创建它。