小编Mat*_*ger的帖子

Google Apps脚本-无法在App(电子表格等)中使用HTML服务“ createTemplateFromFile”吗?

HtmlService的文档没有说明这不起作用,但似乎模板方法仅限于Web应用程序Apps Script项目。

我试图使用HTMLService在SpreadSheet中创建一个UI,该UI可以采用一些初始上下文,然后与工作表进行交互。但是,尝试从工作表的Apps脚本项目中使用“ createTemplateFromFile”时,将引发运行时错误。

下面引用的“ changeDialog”是Apps Script项目中带有占位符标记的简单文件:

<h2> fieldName </h2>
Run Code Online (Sandbox Code Playgroud)

调用时,以下代码将引发异常“无效参数:用户界面”:

function showSidebar(){

  var html = HtmlService.createTemplateFromFile('changeDialog');
  html.evaluate();

    SpreadsheetApp.getUi() 
      .showSidebar(html);
}
Run Code Online (Sandbox Code Playgroud)

更新:更新了无效的实际代码。并且...由[Mogsdad]回答。所有模板文档都显示了网页变体,其中“ doGet()”方法返回“ .evaluate()”的结果。我认为html对象承载着“评估”方法的内部状态。我发现您可以将结果设置为另一个var,或者只是在.showSideBar(...)方法中进行在线调用:

  SpreadsheetApp.getUi() 
     .showSidebar(html.evaluate());
Run Code Online (Sandbox Code Playgroud)

要么...

  var evaluatedHtml = html.evaluate();
  SpreadsheetApp.getUi() 
      .showSidebar(evaluatedHtml);
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script

5
推荐指数
1
解决办法
3175
查看次数

标签 统计

google-apps-script ×1

google-sheets ×1