如何使用Google表格脚本编辑器制作表单

时间:2019-08-07 07:12:54

标签: google-apps-script google-sheets

我需要创建一个包含3列的Google工作表(A列:名称,B列:性别,C列:电子邮件)

然后,我需要向工作表中添加一个脚本,以创建一个表单(由于某些原因,我无法使用google表单),其中包含我们刚刚在工作表中添加的三个相关问题

我可以执行form.html代码,但是我对JavaScript在将表单提交到工作表后将其连接到工作表上不太熟悉

我认为是这样的:

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('form.html');
}

function update spreadsheet {
  var sheet = "get active spreadsheet"
  ...

我无法完成以上代码,有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

您可以将Apps脚本部署为Web App [1]。您需要创建一个html文件[2],在其中放置所需的表单。这里[3]很好地解释了如何使用html中的JavaScript执行Apps脚本功能。最后,在Apps脚本函数中,可以使用SpreadsheetApp类插入所需的值[4]。

这将是在文档中找到的示例代码:

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      // Prevent forms from submitting.
      function preventFormSubmit() {
        var forms = document.querySelectorAll('form');
        for (var i = 0; i < forms.length; i++) {
          forms[i].addEventListener('submit', function(event) {
            event.preventDefault();
          });
        }
      }
      window.addEventListener('load', preventFormSubmit);

      function handleFormSubmit(formObject) {
        google.script.run.withSuccessHandler(updateUrl).processForm(formObject);
      }
      function updateUrl(url) {
        var div = document.getElementById('output');
        div.innerHTML = '<a href="' + url + '">Got it!</a>';
      }
    </script>
  </head>
  <body>
    <form id="myForm" onsubmit="handleFormSubmit(this)">
      <input name="myFile" type="file" />
      <input type="submit" value="Submit" />
    </form>
    <div id="output"></div>
 </body>
</html>

code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function processForm(formObject) {
  var formBlob = formObject.myFile;
  var driveFile = DriveApp.createFile(formBlob);
  return driveFile.getUrl();
}

[1] https://developers.google.com/apps-script/guides/web

[2] https://developers.google.com/apps-script/guides/html/

[3] https://developers.google.com/apps-script/guides/html/communication

[4] https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app