文档和工作表附加组件的文档限制是,Apps脚本无法分辨用户在加载项之外做了什么.这个诱人的提示给出了:
可以从侧边栏的客户端代码轮询文件内容的更改,尽管您总是会有轻微的延迟.该技术还可以提醒您的脚本更改用户所选单元格(在表格中)和光标或选择(在文档中).
遗憾的是,这并未在任何演示代码中显示.我该怎么做?
javascript jquery google-docs google-sheets google-apps-script
使用:
Google表格(新)
目标:
在电子表格中,显示从HTML创建的模式对话框,然后运行一个函数,然后自动关闭该HTML提示.对话框一直保持到函数完成执行,然后自动消失.这个过程必须每3个小时重复一次,脚本需要像我一样运行(因为我有其他用户没有的编辑权限),所以简单的触发器可能不起作用(我读过你必须创建一个可安装的触发器)如果你希望函数像你一样运行而不是当前用户在给定时间运行的那个人)
是)我有的:
我的代码
这是我的第一个剧本,所以请不要太反感!
Magic_Telling
从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, ' ');
}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
All_In
函数用于处理行
function All_In() {
UnlockRowBlocks();
UnhideRowBlocks();
LockRowBlocks();
HideRowBlocks();
} …
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据当前选定的单元格更新 Google 表格中侧边栏的内容。我的第一个虚拟脚本是:
function onSelectionChange(e) {
var ui = SpreadsheetApp.getUi();
var range = e.range;
var selectedRow = range.getNumRows();
var htmlOutput = HtmlService
.createHtmlOutput('This is row '+selectedRow)
.setTitle('Title');
ui.showSidebar(htmlOutput);
}
Run Code Online (Sandbox Code Playgroud)
...它什么都不做,即没有侧边栏显示。我试图停用应用程序脚本 v8,没有变化。
我在一张纸上列出了水果名称。然后,我制作了一个自定义侧边栏,该侧边栏将通过选择工作表中的单元格来显示所选名称的信息,而无需重新加载侧边栏或无需单击侧边栏中的任何按钮。只需选择一个单元格即可。是否可以?我该怎么做?先感谢您