gpt4 book ai didi

google-apps-script - “无法从此上下文中调用SpreadsheetApp.getUi()”

转载 作者:行者123 更新时间:2023-12-04 17:45:26 26 4
gpt4 key购买 nike

在Google表格电子表格中,我想显示一个用HTML创建的模式对话框,然后运行一个函数,然后自动关闭该HTML提示。

该对话框将一直保留,直到函数执行完毕,然后自动消失。

此过程必须每3小时重复一次,并且脚本需要以我的身份运行(因为我具有其他用户没有的编辑权限),因此简单的触发器可能无法正常工作(我读过,您必须创建一个可安装的触发器如果您希望功能以您自己的身份运行,而不是给定时间的当前用户是谁)

我目前有:


.gs函数Magic_Telling,通过使用HTML文件创建模态对话框
一个HTML文件Prompt_Styling,其中包含提示的css / html样式。然后,此HTML文件调用.gs函数All_In来处理行


我的代码:

魔术讲
从HTML文件创建模式对话框。

function Magic_Telling() {
var UI = SpreadsheetApp.getUi();
var newline = '\n'
// Display a modal dialog box with custom HtmlService content.
var htmlOutput = HtmlService.createHtmlOutputFromFile('PromptStyling')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(300)
.setHeight(100);
UI.showModalDialog(htmlOutput, ' ');
}



Prompt_Styling HTML文件,用于样式提示+脚本,该脚本运行将处理行的功能All_In

<html>
<head>
// some irrelevant stuff here
</head>

<script>
window.onload = function() {
google.script.run
.withSuccessHandler(closeDialog)
.All_In();
};

window.closeDialog = function() {
google.script.host.close();
};

</script>
</html>


All_In函数处理行

function All_In() {

UnlockRowBlocks();
UnhideRowBlocks();
LockRowBlocks();
HideRowBlocks();

}


当我从脚本编辑器运行MagicTelling时,它的运行效果非常漂亮。整个序列将执行(显示提示,执行All_In,提示消失)。完善。

然后,我通过转到以下位置创建了一个可安装的触发器
脚本编辑器>资源>当前项目的触发器
并添加了一个触发器,每3小时运行一次Magic_Telling。
(我认为这是一个“可安装的触发器”)

但我收到此错误消息:


无法从此上下文调用SpreadsheetApp.getUi()。


...当函数到达Magic_Telling的第一行时

我应该怎么做才能解决这个问题?

最佳答案

Ui对话框不能由时间触发的函数调用,它们必须由用户操作触发,也就是说,单击菜单项或某种按钮即可调用显示UI的函数。

关于google-apps-script - “无法从此上下文中调用SpreadsheetApp.getUi()”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36117119/

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