0
我有一個webapp表單,我正在尋找一種方法將表單的值推送到Google電子表格中。webapp表單值到電子表格
我的當前的嘗試是將名稱分配給每個窗體輸入(A1,A2,A3 ...),那麼嘗試表單值迭代進入一個這樣的數組:
Code.gs
function doGet(e) {
return HtmlService
.createTemplateFromFile('Index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE)
}
function writeForm(form) {
var ss =
SpreadsheetApp.openById('1bKrGjBV*****');
var sheet = ss.getSheets()[0];
var data = ss.getDataRange().getValues();
var input = [''];
var ndata = form
for(var j=0;j<data.length;j++){
var value = form.a+j
input.push(value)
}
for(var k=0;k<data.length;k++){
sheet.getRange(k+1,4).setValue(ndata[k]);
}
var range = sheet.getRange(1, 5);
}
function getData(){
return SpreadsheetApp
.openById('1bKrGjBV*****')
.getSheets()[0]
.getDataRange()
.getValues();
}
的Index.html
<body>
<center><h1>Produce Inventory Form </h1></center>
<style>
table,th,td{border:1px solid black;}
</style>
<? var data = getData(); ?>
<form id="invform">
<input type = "submit" value="Submit" onclick
="google.script.run.writeForm(this.parentNode)">
<table align="center">
<tr><th>Code</th><th>Name</th><th>ChName</th><th>On Hand</th></tr>
<? for(var i=0;i<data.length;i++){ ?>
<tr>
<th><?= data[i][0] ?></th>
<th><?= data[i][1] ?></th>
<th><?= data[i][2] ?></th>
<th><input type = "text" style="width:40px" min="0" maxlength="3" name=a<?
=i ?>>
</tr>
<? } ?>
</table>
</body>
使用這種方法,我進入的問題是
var value = form.a+j
不會做我希望的,即將一個變量分配給form.a1,form.a2,form.a3,...然後將其推入數組。
我很確定有更好的方法,但我還沒有找到解決方案。爲這些混亂的代碼道歉,但我專注於獲得結果。
謝謝你的解釋。我能夠正確推送您的修改後的代碼的值。因爲我只有一列數據需要推送,所以我必須更改爲setValue。我也改變(輸入)到(輸入[j]),所以它不只是推動第一個值。我想我現在更瞭解如何使用html和java。 –
@Sean W感謝您提供更多信息。 – Tanaike