我在带有一些输入字段的电子表格中有一个侧边栏。 我遇到的麻烦是检索用户响应以放入电子表格。
我在HTML表单中使用action
属性,使用以下HTML:
<form action="demo_form.asp">
Run Number: <input type="text" name = "number"><br>
<input type="submit" value="Submit" >
</form>
如何在用户点击提交后从“数字”中提取内容,以便将其粘贴到电子表格中。
答案 0 :(得分:2)
您必须使用google.script.run
客户端API。这是技术术语。你不能粘贴&#34; HTML中的值到电子表格的方式与您可以使用的方式相同&#34;复制&#34;和&#34;粘贴&#34;。
您需要从action
标记中删除<form action="demo_form.asp">
属性。这可能会导致问题。
并且不要使用submit
类型的输入标记。 <input type="submit" value="Submit" >
表单中的典型HTML行为,使用&#34;提交&#34;导致发出HTTPS请求,这不是您想要的。您需要检索一个或多个值,或整个表单,然后将这些值发送到服务器。
即使价值是从&#34;客户端&#34;到服务器,并写入电子表格数据,它将自动显示在电子表格中。因此,它不是将数据从侧栏直接插入电子表格。它从侧边栏到服务器,保存到云端硬盘中的电子表格数据,然后在浏览器中显示在电子表格中。
如果将表单对象发送到服务器,则无法发送任何其他内容。如果将单个值发送到服务器,则可以发送多个参数。另一种选择是将对象转换为字符串(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>
function myServerFunctionName(argForm) {
var valueFromFormObj = argForm.nameAttributeName;
var ss= SpreadsheetApp.
var sh = ss.getSheetByName();
var rng = sh.getRange();
rng.setValue(valueFromFormObj );
}