Google Apps 脚本 - 将边栏中的用户输入写入电子表格

Google Apps Scripts - Write User Inputs from SideBar to spreadsheet

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

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

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

如何在用户点击提交后从 "number" 中提取内容以便将其粘贴到电子表格中。

您必须使用 google.script.run 客户端 API。那是技术术语。您不能像使用 "Copy" 和 "Paste".

一样,将 HTML 中的值 "paste" 放入电子表格

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

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

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

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

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

Link to google.script.run documentation

<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 );
}