来自现有的GoogleSheet,我正在尝试创建一个映像按钮,并连接一个小脚本,该脚本将使用目标GoogleSheet的ID打开另一个GoogleSheet。我已经完成了图像按钮,并且知道如何将功能脚本附加到它。
我尝试了以下内容:
function Open2017File() {
var ss = SpreadsheetApp.OpenById("1mTz8YaH_lu6R3icbSCpgx0Oy-AB4a98thDPP0m1xNhU");
Logger.log(ss.getName());
}
但是,在进一步阅读后,我发现这仅打开了服务器端脚本的文件...
有人可以告诉我等效命令在客户端打开GoogleSheet,可以帮助我。?
预先感谢
您可以使用此代码打开新的表:
function openNewSheet() {
var spreadsheetId = YOUR_ID_HERE;
var url = "https://docs.google.com/spreadsheets/d/"+spreadsheetId;
var html = "<script>window.open('" + url + "');google.script.host.close();</script>";
var userInterface = HtmlService.createHtmlOutput(html);
SpreadsheetApp.getUi().showModalDialog(userInterface, "Open Sheet");
}
我从这篇文章中得到了:https://www.youtube.com/watch?v=2y7y5hwmpc4
您可以使用内置的HTMLService和Scriptlet来实现此目标。转到"文件" - "新" - " HTML文件",然后在项目中添加HTML页面。我称我的"侧边栏"。'&lt;?!=?>'符号用于输出变量通过'.GS'代码传递给HTML。感叹号'!'指示这些符号之间的任何内容都将直接打印到页面。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<a href="<?!= spreadsheet.url ?>"> Open spreadsheet <?!= spreadsheet.name ?> </a>
</body>
</html>
下面的代码将自定义菜单添加到电子表格 - 单击" show侧栏"菜单选项执行" showsidebar()"函数。在此功能中,您应该首先获得侧边栏的HTMLTemplate类的实例。请注意,在这一点上,这只是我们可以为自定义属性定义的JS对象。那就是脚本发挥作用的地方。
下一步是通过调用" getSpreadsheet(id)"函数并将变量传递给htmltemplate来获取第二个表格的URL和文件名。
最后,在模板上调用evaluate()方法将将模板转换为htmlOutput对象,准备通过showsidebar()方法消耗。我们传递给模板的属性将打印到由此产生的HTML:
var ui = SpreadsheetApp.getUi();
var spreadsheetId = YOUR_ID_HERE;
function onOpen() {
ui.createMenu('User options').addItem('Show sidebar', 'showSidebar').addToUi();
}
function showSidebar() {
var template = HtmlService.createTemplateFromFile('sidebar');
var spreadsheet = getSpreadsheet(spreadsheetId);
template.spreadsheet = { //passing data to the template
url: spreadsheet.getUrl(),
name: spreadsheet.getName()
};
ui.showSidebar(template.evaluate()); //evaluate runs the scriptlets
//and creates the fully-formed DOM tree
}
function getSpreadsheet(id) {
return SpreadsheetApp.openById(id);
}
当然,您可以通过将" showsidebar"函数分配给电子表格内的按钮来创建快捷方式,以便于访问。
,因为不可能切换到另一个表(TAB),所以我找到了一个工作。
只隐藏一张或多张床单,直到您只有想要的床单为止。
然后返回未底面的床单。