我有一个Google电子表格,可以加载带有HTML表单的侧边栏。该表格的代码如下:
<script>
function handleFormSubmit(formObject) {
google.script.run.processForm(formObject);
}
</script>
<form id="myForm" onsubmit="handleFormSubmit(this)">
PO#: <input type="text" name="po" required><br/>
Invoice#: <input type="text" name="invoice" required><br/>
<input type="submit" value="Submit" />
</form>
<div id="output"></div>
它适用于以下脚本:
function processForm(form) {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Sheet5');
var lr = sheet.getLastRow();
var range = sheet.getRange(lr+1,1,1,1);
range.setValue(form);
Logger.log(form);
}
目前我收到了{invoice=####, po=####}
。如何解析(如果这是正确的术语)表单提交,以便每个响应可以转到不同的单元格?有没有办法把它变成一个数组?
由于
答案 0 :(得分:1)
不完全确定您要在此处执行的操作,但我认为您无法将dom对象转移到Google Apps脚本。你可以用这个:
groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method
然后在您的Google Apps脚本中,要获取输入的值,请使用
interface NoArg {
Object handle();
}
interface OneArg {
Object handle(Request req);
}
interface TwoArg {
Object handle(Request req, Response rsp);
}
和
overloaded
答案 1 :(得分:0)
使用google.script.run.processForm()将表单传回服务器。而不是使用获取最后一行,并添加+1,只需使用appendRow()函数。
function processForm(form) {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Sheet5');
sheet.appendRow(form) //accepts an array [val1,val2,val3]
}