javascript - 完成 Google 表单后,如何在 Google 电子表格中现有工作表的末尾创建新行?

标签 javascript google-apps-script

我正在尝试将链接的 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 表单没有太多经验,因此我不确定如何解决此问题。非常感谢任何建议。

最佳答案

试试这个:

您必须提供电子表格 ID 和工作表名称。并为电子表格创建一个 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;
}

或者您可以使用“编辑菜单/当前项目触发器”手动创建它。

关于javascript - 完成 Google 表单后,如何在 Google 电子表格中现有工作表的末尾创建新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56065874/

相关文章:

google-apps-script - Google Apps脚本:YouTube观看记录

javascript - Google 脚本编辑触发器

google-apps-script - 如何让用户登录 Google 以访问已部署的 GAS Web 应用程序?

javascript - thymeleaf 片段表达

javascript - HTML 中的下标文本

javascript - 保护专有 HTML/CSS/JavaScript 的最佳方法是什么?

ipad - iPad 上的 Google 电子表格(带有 App 脚本)

javascript - 对齐方式的变化?

javascript - 使用 Firebase 存储时出错

javascript - 使用 Google Apps 脚本将数据从 API 提取到电子表格