如何从自定义菜单项打开Goog​​le表单

时间:2014-11-08 08:36:48

标签: google-apps-script google-sheets google-form

我是Google Script的新手,我正在尝试创建一个Google表格来管理报价的创建....我创建了一个表单来捕获Quote详细信息,我希望用户能够点击在工作表顶部的菜单项上,创建新报价"这将打开表格。

在创建菜单项时,我可以用什么命令代替以下命令,这样就可以打开表格....我需要在任何地方参考表格ID吗?

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Quote Generator Menu')
      .addItem('Create New Quote', 'menuItem1')
      .addItem('Update Lists', 'updateLists')
      .addSeparator()
      .addSubMenu(ui.createMenu('Reporting')
          .addItem('Dashboard', 'menuItem2'))
      .addToUi();
}

function menuItem1() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     .alert('You clicked Create New Quote');
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     .alert('You clicked Dashboard');
}

1 个答案:

答案 0 :(得分:1)

一种快速而肮脏的方式。菜单点击:

  1. 创建UI应用。
  2. 创建指向已发布表单的超链接,指示用户单击链接以添加新报价。
  3. 添加指向UI应用的链接。
  4. 显示UI应用
  5. 示例:

    function onOpen() {
      var ui = SpreadsheetApp.getUi();
      ui.createMenu('Quote Generator Menu')
        .addItem('Create New Quote', 'showUrl')
        .addToUi();
    }
    
    // http://stackoverflow.com/questions/26815296
    function showUrl(){
      var FORM_URL = "ENTER_FORM_URL_HERE";
      var app = UiApp.createApplication().setHeight(50).setWidth(200);
      app.setTitle("Submit New Quote");
      var link = app.createAnchor('Click to here to submit a new quote', FORM_URL);
      app.add(link);  
      var doc = SpreadsheetApp.getActive();
      doc.show(app);
    }
    

    单击菜单后弹出的UI提示的屏幕截图:

    Screenshot of UI prompt that contains hyperlink to form