gpt4 book ai didi

google-apps-script - Google Apps 脚本 - HTML 服务 "createTemplateFromFile"无法在应用程序(电子表格等)内使用?

转载 作者:行者123 更新时间:2023-12-03 06:03:29 25 4
gpt4 key购买 nike

HtmlService 的文档并未声明这不应该起作用,但模板方法似乎仅限于 Web 应用程序 Apps 脚本项目。

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

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

<h2> fieldName </h2>

以下代码在调用时抛出异常“无效参数:用户界面”:

function showSidebar(){

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

SpreadsheetApp.getUi()
.showSidebar(html);
}

更新:使用无法正常工作的实际代码进行了更新。并且......[Mogsdad]回答了。所有模板文档都显示网页变体,其中“doGet()”方法返回“.evaluate()”的结果。我认为 html 对象携带“evaluate”方法的内部状态。我发现您要么将该结果设置为另一个变量,要么只是在 .showSideBar(...) 方法中进行调用:

  SpreadsheetApp.getUi() 
.showSidebar(html.evaluate());

或者...

  var evaluatedHtml = html.evaluate();
SpreadsheetApp.getUi()
.showSidebar(evaluatedHtml);

最佳答案

您需要evaluate()模板来创建HtmlOutput对象。

function showSidebar(){

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

var a = "test";

SpreadsheetApp.getUi()
.showSidebar(html.evaluate());
//////////
}

由于您的 changeDialog.html 文件不包含模板标记,因此您可以直接从它创建 HTML 文件:

function showSidebar(){

var html = HtmlService.createOutputFromFile('changeDialog');
//////

var a = "test";

SpreadsheetApp.getUi()
.showSidebar(html);
}

关于google-apps-script - Google Apps 脚本 - HTML 服务 "createTemplateFromFile"无法在应用程序(电子表格等)内使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26894830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com