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

Google apps script 如何让谷歌表单检索电子表格数据并将其显示在谷歌网站上?,google-apps-script,google-sites,Google Apps Script,Google Sites,期望的结果:能够在Google表单中输入搜索词(可能是但不一定是;可能是标准网页中的表单),并从Google表单中检索相关数据,并在Google Site web app中显示 在这个问题中,我学习了如何从参数化URL检索数据并在Google站点中显示: 因此,检索和显示电子表格数据的“技术”是存在的,但是当涉及到从在线表单而不是URL中提取数据时,我不知道从哪里开始。也许在提交时,以某种方式读取表单值,创建一个参数化URL并转到该页面以显示数据?这个示例如何?这是一个非常简单的示例脚本。请根据

期望的结果:能够在Google表单中输入搜索词(可能是但不一定是;可能是标准网页中的表单),并从Google表单中检索相关数据,并在Google Site web app中显示

在这个问题中,我学习了如何从参数化URL检索数据并在Google站点中显示:


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

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

  • 将以下脚本复制并粘贴到脚本编辑器中
  • 输入用于搜索数据的电子表格ID和工作表名称
  • 部署Web应用程序并运行脚本
  • 输入搜索文本并按下“确定”按钮
  • 脚本: 谷歌应用程序脚本:code.gs HTML:index.HTML
    
    函数dispData(e){
    $('#disp').text(JSON.stringify(e));
    }
    函数getData(e){
    google.script.run.withSuccessHandler(dispData.getData)(e);
    }
    
    电子表格示例:

    结果:


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

    非常感谢。不幸的是,当我发布该文件,然后将URL复制到一个新选项卡并按enter键时,我收到一条消息:“对不起,此时无法打开该文件。请检查地址,然后重试。”@MrGreggles对于给您带来的不便,我深表歉意。现在我再次确认这个脚本工作正常。修改脚本后,必须更新项目版本。这样,Web应用程序就可以使用最新的脚本。如果您想知道如何获取URL,请确认或。@MrGreggles如果不起作用,请创建一个新项目,复制并粘贴脚本并运行它。即使你这样做了,如果它不起作用,我能问一下你做的细节流程吗?谢谢你的友好回复。我让它工作,然后它就不工作了;然后成功了,然后失败了。等我休息好了再看一遍。但它看起来很有希望,我真的很感谢你在这里的努力@格雷格尔斯先生,很抱歉给您带来不便。我想解决你的问题。如果你允许的话,我可以确认你的剧本吗?我认为,当问题的一部分,即脚本或配置被发现时,它接近解决方案。
    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;
    }
    
    <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>