我创建了脚本,将信息添加到几张纸中。但当我只想在一张纸中添加信息时,它不起作用。我应该在这个脚本中更改什么?这是我上一个主题的链接:enter link description here
<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="Sheet1" /> sheet1
<br>
<br>
<input name="choices" type="checkbox" value="Sheet2" /> sheet2
<br>
<br>
<input name="choices" type="checkbox" value="Sheet3" /> 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);
}
function getValuesFromForm(form){
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]);
}
}
}
}
我还有另一个问题,如何发送包含表单中插入信息的电子邮件?当我有关于“Nr item”和“sheets number”的信息时,我想发送有关“Nr item”信息的电子邮件,并且将插入工作表信息。
问候
最佳答案
尝试选择一个工作表而不是迭代所有工作表。例如:
function getValuesFromForm(form){
var NrItem = form.NrItem;
var date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; // Added [0] but you could select any sheet
//removed this line: for (var i in sheets) {
for (var j in form.choices) {
if (form.choices[j] == sheets.getName()) { // removed the [i]
sheets.appendRow([date, NrItem]); // removed the [i]
}
}
//removed this line: }
}
您还可以使用 .getSheetByName(name)
,而不是 .getSheets()[0]
。
让我知道它是否适合您!
关于javascript - 将数据插入工作表并发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46292318/