将数据插入Google表格中的不同表格

时间:2017-08-26 07:15:40

标签: java html google-sheets google-spreadsheet-api

我尝试在Google表单中创建,以便一次将数据插入多张表格中。 当您打开表单时,您有输入某些值的字段和复选框,您可以在其中选择要输入数据的工作表。 我有一个问题,如何将数据一次写入多张纸? 在我的代码下面。

enter image 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="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]);
    
  
  }

1 个答案:

答案 0 :(得分:1)

如何修改?

为了从input检索值,它会this.parentNode使用formSubmit()。这样,getValuesFromForm(form) NrItem可以form.NrItem检索. . . <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>

修改后的脚本:

这是对HTML文件的修改。

sampletext

注意:

this.parentNode输入到文本框并且选中了sheet1和sheet2的复选框时,{"NrItem":"sampletext","choices":["something1","something2"]} 变为

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

如果我误解了你的问题,我很抱歉。

修改

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

修改HTML:

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

修改后的GAS:

namespace WpfTest
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        frmStudent frm = new frmStudent();
        frm.Show();

    }
}
}

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