将数据插入 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]);
    }
  }
}

如果这不是您想要的样本,请随时告诉我。