javascript - 完成 Google 表单后,如何在 Google 电子表格中现有工作表的末尾创建新行?
问题描述
我正在尝试将链接的 Google 表单中的回复保存到现有的 Google 表格中。更准确地说,电子表格显示员工的休假请求以及员工的休假原因、请求的天数、请求的日期、经理的姓名等。基本上,表格要求员工提供这些信息。
谢谢!
我在这里想要实现的是将响应信息保存到已经创建的电子表格中。根据谷歌的文档,仅有的两个选项是:
1)创建一个新的电子表格:为谷歌表格中的回复创建一个电子表格
2)选择现有的电子表格:从谷歌表格中的现有电子表格中选择以存储回复
如果选项 #2,我可以将回复保存在同一个电子表格中,但它将它们保存在新工作表中;我正在尝试将响应保存在同
一张表中。
我知道 Google Form 有一个脚本编辑器。是否可以运行将响应发送到电子表格的函数?也许是这样的?
function sendToSpreadSheet(e)
{
var ss = SpreadsheetApp.openById("abc1234567");
// Send response to spreadsheet
// Populate cells accordingly
}
我对谷歌表单没有太多经验,所以我不确定如何解决这个问题。非常感谢任何建议。
解决方案
试试这个:
您必须提供电子表格 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;
}
或者您可以使用编辑菜单/当前项目触发器手动创建它。
推荐阅读
- splunk - Splunk:Splunk-python SDK:如何包含 pandas、numpy 来创建自定义命令
- oauth-2.0 - hwi_oauth 无法连接到 FOS_OAUTH_SERVER
- python-3.x - Python程序将毫秒转换为小时,分钟和秒逻辑错误
- sql - 如何使用提示用户在sql中的位置?
- ionic3 - 在 Windows 应用程序中按退格键触发离子搜索栏错误事件
- google-maps - 如何使用谷歌地图插件添加标记并在标记上设置自定义点击事件?
- r - R Studio 包安装问题
- itk - 不同像素间距和切片厚度的 ITK 过滤器
- android - 如何在android editText中显示两位小数?
- javascript - 删除使用“signature_pad”生成的签名周围的空白/空格