html - Google Apps 脚本 - 将用户输入从侧边栏写入电子表格

标签 html google-apps-script google-sheets sidebar

我的电子表格中有一个侧边栏,其中包含一些输入字段。 我遇到的麻烦是检索用户响应并将其放入电子表格中。

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

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

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

最佳答案

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

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

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

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

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

如果将表单对象发送到服务器,则无法发送其他任何内容。如果将单个值发送到服务器,则可以发送多个参数。另一种选择是将对象转换为字符串(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 );
}

关于html - Google Apps 脚本 - 将用户输入从侧边栏写入电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35923660/

相关文章:

html - 如何设置 html 页面布局对媒体类型的依赖?

php - 如何处理多个ajax请求的SQL查询

javascript - 如何为表格制作表格单元格输入

google-sheets - 使用间接地址的 Google Sheets 查询

javascript - 定位网站中的所有链接 - JavaScript

javascript - 如何从谷歌应用程序脚本中谷歌翻译的语言代码获取语言名称?

javascript - Google Sheets 数学函数可以在脚本中使用吗?

google-apps-script - 如何使用列标题引用 Google Apps 脚本电子表格中的单元格

python - 如果我有一个except,我该如何重做?

google-apps-script - 在工作场所以外使用时禁止访问Google工作表