Google Apps脚本 - 使用补充工具栏表单向电子表格添加一行

时间:2016-09-13 00:20:55

标签: javascript html google-apps-script

这个脚本应该在按钮的电子表格“onclick”上添加一个新行,但事实并非如此。最终,我希望能够将数据添加到与列对应的每个文本框中并添加新行。不知道为什么这不起作用。如何追加新行?这个脚本在我运行时在脚本编辑器中工作,而不是在侧栏html中。

    // Use this code for Google Docs, Forms, or new Sheets.
    function onOpen() {
      SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .createMenu('SideBar')
      .addItem('Open', 'openDialog')
      
      .addToUi();
  
    }

    function openDialog() {
     var html = HtmlService.createHtmlOutputFromFile("Index");
     html.setTitle('Gmf Sent Msg Form'); 
     SpreadsheetApp.getUi().showSidebar(html);
  
    }

   function insertRow(){
    var doc =     SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1RY3TZvU-        TFhlCyF9TKRk4Hb4b6Q1TnYa5K7ixyktykY/edit#gid=0");
     doc.getActiveSheet().appendRow(['700','9/12/16','PO 16-45789'])
  
  
    }
<body>
Use this form to enter information into the cells of the spreadsheet.<br>
<form>
<p>ID</p>
<input type="text" name="txtID" />
<p>Date</p>
<input type="text" name="txtDate"/>
<p>Subject</p>
<input type="text" name="txtSub" />
<input type="button" value="Append Row" onclick="google.script.run
          .withSuccessHandler(insertRow)" />
</form>
</body>

1 个答案:

答案 0 :(得分:1)

在这一行:

<input type="button" value="Append Row" onclick="google.script.run.withSuccessHandler(insertRow)" />

您正在设置回调函数withSuccessHandler(),但您没有调用任何服务器端函数,直接调用它需要使用:

google.script.run.insertRow();

如果要在服务器端函数成功返回时将回调函数设置为运行。

google.script.run.withSuccessHandler(onSuccess).insertRow();

有关详情,请参阅communicating with server functionsgoogle.script.run指南。