在html中使用谷歌脚本api

Use googlescript api in html

本文关键字:谷歌 脚本 api html      更新时间:2023-09-26

我有一个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 提供服务的谷歌脚本

function openDialog() {
 var html = HtmlService.createHtmlOutputFromFile('TeacherView')
  .setSandboxMode(HtmlService.SandboxMode.IFRAME);
 SpreadsheetApp.getActive().show(html);
}

当html文件运行时,我不应该看到电子表格中的范围更改值吗?或者查看记录器日志中的值?我是否误解了脚本和html的结合方式?

有点像是一起创建html/javascript的新手,所以我们非常感谢您的帮助。

您必须使用:

google.script.run.nameOfServerFunction()

https://developers.google.com/apps-script/guides/html/reference/run

您不能在HTML中的脚本标记中直接使用应用程序脚本服务。

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

代码.gs

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