如何创建一个打开给定电子表格的按钮?

时间:2015-12-29 13:43:45

标签: google-apps-script google-sheets

我正在尝试在用户界面中创建一个新按钮,以便在点击它时打开一个新的电子表格。我看起来很简单,但我一直在四处寻找,我无法找到我正在寻找的东西。

到目前为止,我知道如何在用户界面上创建我的按钮,但我无法添加后面的功能来打开电子表格。

function onOpen() {

  SpreadsheetApp.getUi()
      .createMenu('Button') // my button name
      .addToUi();
 }

你知道我怎么能做到这一点吗?

2 个答案:

答案 0 :(得分:0)

抱歉,我错过了重要部分。让我再尝试一次。此方法不会从按钮打开新的电子表格。它会创建一个新的电子表格,然后创建一个指向新电子表格的超链接(在本例中为" A1")。我不认为可以直接从按钮创建和打开新的电子表格。试一试。每次按钮都会创建一个新的电子表格和新的超链接。

 function onOpen() {
 SpreadsheetApp.getActiveSpreadsheet().addMenu(
    'Create Spreadsheet', [ 
      { name: 'New Spreadsheet', functionName: 'newSprdsht' }, 
      ]);   
 }
function newSprdsht(){
var ss = SpreadsheetApp.create("New Spreadsheet "+new Date());//create a new  spreadsheet with new name each run
var url = ss.getUrl();//get url of new spreadsheet
var s=SpreadsheetApp.getActiveSpreadsheet()
var s1=s.getActiveSheet()
var cell =s1.getRange("A1")// where to put the hyperlink
var v='=HYPERLINK(\"'+url+'\",\"New Spreadsheet\")'
cell.setFormula(v)
} 

答案 1 :(得分:0)

您无法直接从菜单中打开工作表,但可以打开一个弹出窗口,其中包含用于打开工作表的链接。

function onOpen() {
  SpreadsheetApp.getUi().createMenu("Google Sheet").addItem("Open", "openSheet_").addToUi();
}

function openSheet_() {
  var ss = SpreadsheetApp.getActive();
  var url = ss.getUrl(); // replace this with another URL
  var html = HtmlService.createHtmlOutput("<a href='URL' target='_blank'>Open Sheet</a>".replace("URL", url));
  ss.show(html.setHeight(100).setWidth(200));
}