这个脚本应该在按钮的电子表格“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>
答案 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 functions和google.script.run指南。