将数据插入 Google Sheet 中的不同工作表
Inserting data into different sheets in Google Sheet
我尝试以 google sheet 形式创建,以便一次将数据插入多个 sheet。
当您打开表单时,您会看到用于输入一些值的字段和复选框,您可以在其中 select 和 sheet 输入数据。
我有一个问题,如何让数据一次写入多个sheet?
在我的代码下面。
<b>test 1.1</b><br />
<br>
<form>
<br>
Nr item:<br>
<input id="NrItem" name="NrItem" type="text" />
<br>
<br>
<input name="choices" type="checkbox" value="something1" /> sheet1
<br>
<br>
<input name="choices" type="checkbox" value="something2" /> sheet2
<br>
<br>
<input name="choices" type="checkbox" value="something3" /> sheet3
<br>
<br>
<br>
<input onclick="formSubmit()" type="button" value="Add Row" />
<input onclick="google.script.host.close()" type="button" value="Exit" />
</form>
<script type="text/javascript">
function formSubmit() {
google.script.run.getValuesFromForm(document.forms[0]);
}
</script>
function demoHtmlServices() {
var ss = SpreadsheetApp.getActiveSpreadsheet(),
html = HtmlService.createHtmlOutputFromFile('Index').setWidth(200).setHeight(550);
ss.show(html);
}
//getValuesFromForm
function getValuesFromForm(form){
var NrItem = form.NrItem,
date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.appendRow([date, NrItem]);
}
下面的修改怎么样?
为了从 input
中检索值,它对 formSubmit()
使用 this.parentNode
。这样,在getValuesFromForm(form)
处,NrItem
可以被form.NrItem
检索到。
修改脚本:
这是对 HTML 文件的修改。
.
.
.
<input onclick="formSubmit(this.parentNode)" type="button" value="Add Row" />
<input onclick="google.script.host.close()" type="button" value="Exit" />
</form>
<script type="text/javascript">
function formSubmit(e) {
google.script.run.getValuesFromForm(e);
}
</script>
注:
当在文本框中输入sampletext
并勾选sheet1和sheet2的复选框时,this.parentNode
变为
{"NrItem":"sampletext","choices":["something1","something2"]}
如果我误解了你的问题,我很抱歉。
编辑
如果Sheet1、Sheet2、Sheet3的sheet名称不变,可以使用下面的例子。
修改后的HTML:
<br>
<input name="choices" type="checkbox" value="Sheet1" /> sheet1
<br>
<br>
<input name="choices" type="checkbox" value="Sheet2" /> sheet2
<br>
<br>
<input name="choices" type="checkbox" value="Sheet3" /> sheet3
<br>
修改后的气体:
var NrItem = form.NrItem,
date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i in sheets) {
for (var j in form.choices) {
if (form.choices[j] == sheets[i].getName()) {
sheets[i].appendRow([date, NrItem]);
}
}
}
如果这不是您想要的样本,请随时告诉我。
我尝试以 google sheet 形式创建,以便一次将数据插入多个 sheet。 当您打开表单时,您会看到用于输入一些值的字段和复选框,您可以在其中 select 和 sheet 输入数据。 我有一个问题,如何让数据一次写入多个sheet? 在我的代码下面。
<b>test 1.1</b><br />
<br>
<form>
<br>
Nr item:<br>
<input id="NrItem" name="NrItem" type="text" />
<br>
<br>
<input name="choices" type="checkbox" value="something1" /> sheet1
<br>
<br>
<input name="choices" type="checkbox" value="something2" /> sheet2
<br>
<br>
<input name="choices" type="checkbox" value="something3" /> sheet3
<br>
<br>
<br>
<input onclick="formSubmit()" type="button" value="Add Row" />
<input onclick="google.script.host.close()" type="button" value="Exit" />
</form>
<script type="text/javascript">
function formSubmit() {
google.script.run.getValuesFromForm(document.forms[0]);
}
</script>
function demoHtmlServices() {
var ss = SpreadsheetApp.getActiveSpreadsheet(),
html = HtmlService.createHtmlOutputFromFile('Index').setWidth(200).setHeight(550);
ss.show(html);
}
//getValuesFromForm
function getValuesFromForm(form){
var NrItem = form.NrItem,
date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.appendRow([date, NrItem]);
}
下面的修改怎么样?
为了从 input
中检索值,它对 formSubmit()
使用 this.parentNode
。这样,在getValuesFromForm(form)
处,NrItem
可以被form.NrItem
检索到。
修改脚本:
这是对 HTML 文件的修改。
.
.
.
<input onclick="formSubmit(this.parentNode)" type="button" value="Add Row" />
<input onclick="google.script.host.close()" type="button" value="Exit" />
</form>
<script type="text/javascript">
function formSubmit(e) {
google.script.run.getValuesFromForm(e);
}
</script>
注:
当在文本框中输入sampletext
并勾选sheet1和sheet2的复选框时,this.parentNode
变为
{"NrItem":"sampletext","choices":["something1","something2"]}
如果我误解了你的问题,我很抱歉。
编辑
如果Sheet1、Sheet2、Sheet3的sheet名称不变,可以使用下面的例子。
修改后的HTML:
<br>
<input name="choices" type="checkbox" value="Sheet1" /> sheet1
<br>
<br>
<input name="choices" type="checkbox" value="Sheet2" /> sheet2
<br>
<br>
<input name="choices" type="checkbox" value="Sheet3" /> sheet3
<br>
修改后的气体:
var NrItem = form.NrItem,
date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i in sheets) {
for (var j in form.choices) {
if (form.choices[j] == sheets[i].getName()) {
sheets[i].appendRow([date, NrItem]);
}
}
}
如果这不是您想要的样本,请随时告诉我。