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
012です
私は、form.a1、form.a2、form.a3 ...に変数を代入して、それを配列にプッシュすることを望んでいました。
私は確かに良い方法があると確信していますが、まだ解決策を見つける必要があります。面倒なコードをお詫びしますが、結果を得ることに集中しました。
ありがとうございます。変更したコードで値を正しくプッシュできました。プッシュするデータの列が1つしかないので、setValueに変更する必要がありました。私は(入力)を(入力[j])に変更したので、最初の値を押すだけではありませんでした。私は今、htmlとjavaで作業する方法についてもう少し理解していると思います。 –
@Sean W詳細をお知らせいただきありがとうございます。 – Tanaike