.gs/.Google Apps 脚本作为 Web 应用,使用表单元素、HTML 服务和电子表格

.gs/.Google Apps Script as a Web App using Form Elements, Html Service and a spreadsheet

本文关键字:元素 表单 HTML 电子表格 服务 Apps Google 脚本 应用 Web gs      更新时间:2023-09-26

我目前正在尝试从"Web Application"的角度学习一些"Google Apps Script"基础知识。 我想使用"HTML 服务",因为旧的"UI 服务"现已贬值。

基本上,我想完成的是将名称键入"名称"文本输入,

然后单击"提交"按钮,然后应使用输入的值填充电子表格。 我认为下面的代码接近我需要的,但我不确定如何将它们联系在一起,以便表单元素与 .gs 代码一起使用。

目前,我发布的代码在打开电子表格时会在电子表格中的适当位置写入一个值。

任何帮助将不胜感激。索引.html

<div>
    <? var submit = insertInSS(); ?>
    <p>Add a Name:</p>
    <input type="text" name="name">
    <input type="submit"  name="submit"  value="Submit">
    <hr>
    <? var data = getData(); ?>
    <table>
      <? for (var i = 0; i < data.length; i++) { ?>
      <tr>
      <? for (var j = 0; j < data[i].length; j++) { ?>
      <td><?= data[i][j] ?></td>
      <? } ?>
      </tr>
      <? } ?>
    </table>
</div>

我的 code.gs 如下所示

  var submissioSSKey = '1234567890abcdefghijklmnopqrstuvwkyz';
    function doGet() {
      return HtmlService
        .createTemplateFromFile('index')
        .evaluate()
        .setSandboxMode(HtmlService.SandboxMode.IFRAME);
    }
function getData() {
return SpreadsheetApp
  .openById(submissioSSKey)
  .getActiveSheet()
  .getDataRange()
  .getValues(); 
}
    function insertInSS(){
      var ss = SpreadsheetApp.openById(submissioSSKey);
      var sheet = ss.getActiveSheet();
      var lastRow = ss.getLastRow();
      var cell = sheet.getRange(lastRow+1, 1, 1,1);
      cell.setValue("name");
    }

问候

克里斯

通常,SUBMIT 按钮与 FORM 一起工作。 表单中没有"提交"按钮。 请注意第一个 FORM 标记中的onsubmit事件侦听器。 无需配置触发器即可以这种方式运行脚本,还有其他方法。

表单和按钮 HTML

<div id="inputDiv">
  <form id="inputForm" onsubmit="fncWriteInputData()">
    <label>Some Label Text Here:</label>
    <br>
    <input type="text" tabindex="1" id="idFirstInput" class="inptFld" placeholder="Msg To User Here" required><br />
    <label>Label Two Here:</label>
    <br>
    <input type="text" tabindex="2" id="idInputTwo" class="inptFldSgn" required><br />
    <input type="submit" tabindex="3" id="btnSubmitInput" value="Click To Submit">
  </form>
</div>

HTML 脚本标记

<script>
  window.fncWriteInputData=function(){
    console.log("fncWriteInputData ran");
    google.script.run
    .fncRunAppScript(); //Runs server side .gs function
</script>

Code.gs

function fncRunAppScript() {
  Code here . . . 
  return someValue;
};

这是一些基本结构。 您需要根据需要修改和更正它。