使用Google Apps脚本在客户端打开Google表



来自现有的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),所以我找到了一个工作。

只隐藏一张或多张床单,直到您只有想要的床单为止。

然后返回未底面的床单。

最新更新