我的电子表格中有一个侧边栏,其中包含一些输入字段。 我遇到的麻烦是检索用户响应并将其放入电子表格中。
我使用以下 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/