javascript - 将数据插入工作表并发送电子邮件

标签 javascript html google-apps-script google-sheets

我创建了脚本,将信息添加到几张纸中。但当我只想在一张纸中添加信息时,它不起作用。我应该在这个脚本中更改什么?这是我上一个主题的链接: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”信息的电子邮件,并且将插入工作表信息。

enter image description here

问候

最佳答案

尝试选择一个工作表而不是迭代所有工作表。例如:

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/

相关文章:

html - 如何将单个 blogger.com 页面重定向到外部 URL?

javascript - onclick 函数自动运行

forms - 将日期选择器添加到谷歌电子表格表单

javascript - 海妖网站 API : Generate the message signature in Google App Script

javascript - 如何使用 jQuery 转义表单元素中的双引号和 html 标签?

javascript - JavaScript 和 Python 中模运算的不同结果

javascript - Puppeteer - 向下滚动,直到你不能再

javascript - 如何将动态变量拆分为下拉框(变量以逗号分隔)

html - 将 Div 水平和垂直居中

javascript - 需要 JS 图像事件监听器在 html5 Canvas 上绘制多个图像的帮助