如何让Google表单检索电子表格数据并将其显示在Google网站上?

时间:2017-10-11 06:54:19

标签: google-apps-script google-sites

所需结果:能够在Google表单中输入搜索字词(可能但不一定;可以是标准网页中的表单),并从Google表格中检索相关数据并显示在Google网站上应用

我在此问题中学习了如何从参数化网址检索数据并在Google网站上显示:How to include data in a URL for a Google Apps Script web app to read?

所以用于检索和显示电子表格数据的“技术”是存在但 我不知道从在线表单中提取数据时从哪里开始 而不是一个URL。也许在提交时,以某种方式读取表单值,创建参数化URL并转到该页面以显示数据?

1 个答案:

答案 0 :(得分:1)

这个样本怎么样?这是一个非常简单的示例脚本。请根据您的环境进行修改。此示例使用搜索文本检索电子表格上的数据,并显示匹配的行。要使用此样本,请执行以下操作。

  1. 将以下脚本复制并粘贴到脚本编辑器中。
  2. 输入用于搜索数据的电子表格ID和工作表名称。
  3. 部署Web应用程序并运行脚本。
  4. 输入搜索文本并按“" ok"按钮。
  5. 脚本:

    Google Apps脚本:code.gs

    function doGet() {
      return HtmlService.createTemplateFromFile('index').evaluate();
    }
    
    function getData(e) {
      var id = "### Spreadsheet ID ###";
      var sheetname = "### Sheet name ###";
      var data = SpreadsheetApp.openById(id).getSheetByName(sheetname).getDataRange().getValues();
      var ar = [];
      data.forEach(function(f) {
        if (~f.indexOf(e.searchtext)) {
          ar.push(f);
        }
      });
      return ar;
    }
    

    HTML:index.html

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <form>
    <input type="text" name="searchtext">
    <input type="button" value="ok" onClick="getData(this.parentNode)" />
    </form>
    <pre id="disp"></pre>
    
    <script>
    function dispData(e) {
      $('#disp').text(JSON.stringify(e));
    }
    function getData(e) {
      google.script.run.withSuccessHandler(dispData).getData(e);
    }
    </script>
    

    示例电子表格:

    enter image description here

    结果:

    enter image description here

    如果我误解了你的问题,我很抱歉。