繁体   English   中英

Google Apps Scripts - 将用户输入从 SideBar 写入电子表格

[英]Google Apps Scripts - Write User Inputs from SideBar to spreadsheet

我在带有一些输入字段的电子表格中有一个侧边栏。 我遇到的麻烦是检索用户的响应以放入电子表格。

我使用以下 HTML 在我的 HTML 表单中使用action属性:

<form action="demo_form.asp">
  Run Number: <input type="text" name = "number"><br>
  <input type="submit" value="Submit" >
</form>

在用户单击提交以将其粘贴到电子表格中后,如何从“数字”中提取内容。

您必须使用google.script.run客户端 API。 这是技术术语。 您不能像使用“复制”和“粘贴”一样将 HTML 中的值“粘贴”到电子表格中。

您需要从<form action="demo_form.asp">标记中删除action属性。 这可能会导致问题。

并且不要使用submit类型的输入标签。 <input type="submit" value="Submit" >

带有“提交”的表单中的典型 HTML 行为会导致发出 HTTPS 请求,这不是您想要的。 您需要检索一个或多个值或整个表单,然后将这些值发送到服务器。

即使值从“客户端”发送到服务器,并写入电子表格数据,它也会自动显示在电子表格中。 因此,这不是将侧边栏中的数据直接插入电子表格。 它从侧边栏转到服务器,保存到云端硬盘中的电子表格数据中,然后显示在浏览器中的电子表格中。

如果将表单对象发送到服务器,则不能发送任何其他内容。 如果将单个值发送到服务器,则可以发送多个参数。 另一种选择是将对象转换为字符串 (JSON.parse(object)) 并将字符串发送到服务器。

链接到 google.script.run 文档

<form id="myForm">
<input type="button" value="Submit" onmouseup="writeData()">

<script>
  window.writeData = function() {
    var formObj = document.getElementById('myForm');

    google.script.run
      myServerFunctionName(formObj);
  };
</script>

gs代码

function myServerFunctionName(argForm) {
  var valueFromFormObj = argForm.nameAttributeName;

  var ss= SpreadsheetApp.
  var sh = ss.getSheetByName();

  var rng = sh.getRange();

  rng.setValue(valueFromFormObj );
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM