我有一个html文件绑定到谷歌电子表格,创建一个小gui。 gui上有按钮,我想按钮来执行涉及电子表格的事情,所以我想调用SpreadsheetApp之类的东西。
例如,为了让我理解如何正确地执行此操作,假设我只想更改电子表格中的一个单元格,或者将值记录到记录器中。这是提供的html文件。
<div>
<P>Select an option below</P>
<script type="text/javascript">
Logger.log("in html");
SpreadsheetApp.getActiveSheet().getRange(2, 14).setValue('In HTML');
</script>
</div>
我们假设这是为html提供服务的googlescript
function openDialog() {
var html = HtmlService.createHtmlOutputFromFile('TeacherView')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getActive().show(html);
}
当html文件运行时,我不应该看到电子表格中的范围更改值吗?或者看一下记录器日志的值?我误解了脚本和html的组合是如何工作的?
一起创建html / javascript的新东西,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
您必须使用:
google.script.run.nameOfServerFunction()
https://developers.google.com/apps-script/guides/html/reference/run
您无法直接在HTML脚本标记中使用Apps脚本服务。
<div>
<P>Select an option below</P>
<script type="text/javascript">
console.log("in html");
function onSuccess(argReturnValue) {
alert('Success ' + argReturnValue);
}
var dataToPassToServer = get your data;
google.script.run.withSuccessHandler(onSuccess)
.fncMyGsScriptFunctionNameHere(dataToPassToServer);
</script>
</div>
function fncMyGsScriptFunctionNameHere(argDataPassedInHere) {
SpreadsheetApp.getActiveSheet().getRange(2, 14).setValue(argDataPassedInHere);
};