在html中使用googlescript api

时间:2015-03-01 16:16:18

标签: javascript html google-apps-script google-sheets

我有一个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的新东西,所以任何帮助都会受到赞赏。

1 个答案:

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

Code.gs

function fncMyGsScriptFunctionNameHere(argDataPassedInHere) {
  SpreadsheetApp.getActiveSheet().getRange(2, 14).setValue(argDataPassedInHere);
};