将数据插入Google表格中的其他表格 [英] Inserting data into different sheets in Google Sheet

查看:1216
本文介绍了将数据插入Google表格中的其他表格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在Google表格中创建一次将数据插入多张表格。
当您打开表单时,您有用于输入一些值的字段和复选框,您可以在其中选择表单来输入数据。
我有一个问题,我怎样才能使数据一次写入多个表单?
在我的代码下面。





< b> test 1.1< / b>< br /> <峰; br> <形式> <峰; br> Nr项目:< br> < input id =NrItemname =NrItemtype =text/> < br>< br>< input name =choicestype =checkboxvalue =something1/> sheet1< br>< br>< input name =choicestype =checkboxvalue =something2/> sheet2< br>< br>< input name =choicestype =checkboxvalue =something3/>表Sheet 3<峰; br> <峰; br><峰; br> < input onclick =formSubmit()type =buttonvalue =Add Row/> < input onclick =google.script.host.close()type =buttonvalue =Exit/> < /形式> < script type =text / javascript>函数formSubmit(){google.script.run.getValuesFromForm(document.forms [0]); }< / script>  

data-lang =jsdata-hide =falsedata-console =truedata-babel =false>

  function demoHtmlServices(){var ss = SpreadsheetApp.getActiveSpreadsheet(),html = HtmlService.createHtmlOutputFromFile('Index')。setWidth(200).setHeight(550); ssh(html);} // getValuesFromFormfunction getValuesFromForm(form){var NrItem = form.NrItem,date = Utilities.formatDate(new Date(),GMT,yyyy-MM-dd); sheet = SpreadsheetApp.getActiveSpreadsheet()。getActiveSheet(); sheet.appendRow([date,NrItem]); }  


解决方案

为了从 input 中检索值,它使用 this.parentNode 用于 formSubmit()。通过这个, getValuesFromForm(form), NrItem 可以通过 form.NrItem



修改过的脚本:



这是对HTML文件的修改。 / p>

 


< input onclick =formSubmit(this.parentNode)type =buttonvalue =Add Row/>
< input onclick =google.script.host.close()type =buttonvalue =Exit/>
< / form>
< script type =text / javascript>
函数formSubmit(e){
google.script.run.getValuesFromForm(e);
}
< / script>



注意:



sampletext 被输入到文本框中,并检查sheet1和sheet2的复选框, this.parentNode 变为

  {NrItem:sampletext,choices:[something1,something2]} 


$ b

编辑



如果Sheet1,Sheet2和Sheet3的图表名称不变,您可以使用以下示例。



修改过的HTML:



 < br> 
< input name =choicestype =checkboxvalue =Sheet1/> sheet1
< br>
< br>
< input name =choicestype =checkboxvalue =Sheet2/> sheet2
< br>
< br>
< input name =choicestype =checkboxvalue =Sheet3/> sheet3
< br>



修改过的GAS:



  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()){
张[i] .appendRow([date,NrItem]);
}
}
}

如果这不是样本你可以随时告诉我。


I try create in google sheet form to inserting data into several sheets at once. When you open the form you have field for entering some values and Checkbox where you can select a sheet to enter data. I have a question, how can I make data to be written to several sheets at once? Below my code.

 <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]);
    
  
  }

解决方案

How about following modification?

In order to retrieve values from input, it uses this.parentNode for formSubmit(). By this, at getValuesFromForm(form), NrItem can be retrieved by form.NrItem.

Modified script :

This is the modification for the HTML file.

.
.
.
  <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>

Note :

When sampletext was inputted to the text box and the checkboxes of sheet1 and sheet2 are checked, this.parentNode becomes

{"NrItem":"sampletext","choices":["something1","something2"]}

If I misunderstand your question, I'm sorry.


Edit

If the sheet names of Sheet1, Sheet2 and Sheet3 are constant, you can use following sample.

Modified 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>

Modified GAS :

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]);
    }
  }
}

If this was not the sample you want, feel free to tell me.

这篇关于将数据插入Google表格中的其他表格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆