【问题标题】:server handlers in Google app script sheets not workingGoogle 应用脚本表中的服务器处理程序不起作用
【发布时间】:2014-04-17 22:32:52
【问题描述】:

尝试从脚本管理器菜单执行此代码时出现此错误。

遇到错误:找不到脚本函数:function click(e) { var app = UiApp.getActiveApplication(); app.getElementById('label').setVisible(false); SpreadsheetApp.getActiveSpreadsheet().show(ui); 返回应用程序;
}

function readRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  for (var i = 0; i <= numRows - 1; i++) {
    var row = values[i];
    Logger.log(row);
  }
};


function onOpen() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();   
  var entries = [{
    name : "ShowUi",
    functionName : "showSidebar"
  }];
  spreadsheet.addMenu("Script Center Menu", entries);
};

function click(e) {
   var app = UiApp.getActiveApplication();
   app.getElementById('label').setVisible(false);
  SpreadsheetApp.getActiveSpreadsheet().show(ui);
   return app;  
 }
function showSidebar(e){
  var ui= UiApp.createApplication()
     .setTitle('My UiApp Application')
     .setWidth(250)
     .setHeight(300);

  var button = ui.createButton("I am a button!");
  var handler = ui.createServerHandler(click);
  button.addClickHandler(handler);
  var label =ui.createLabel('The photograph on the dashboard taken years ago...').setId('label').setVisible(false);
  handler.addCallbackElement(label).addCallbackElement(button);
  ui.add(label);
  ui.add(button);

 SpreadsheetApp.getActiveSpreadsheet().show(ui);

  return ui;
};

很抱歉,我不得不在这里发帖可能很明显,但我在互联网上的其他任何地方都找不到答案。任何我可以做同样事情的解决方案或替代方式将不胜感激。谢谢!

【问题讨论】:

    标签: google-app-engine gwt google-apps-script google-sheets


    【解决方案1】:

    试试这样的:

    function showSidebar(e){
    
      var ui= UiApp.createApplication()
         .setTitle('My UiApp Application')
         .setWidth(250)
         .setHeight(300);
    
      var label = ui.createLabel('The photograph on the dashboard taken years ago...').setId('label').setVisible(false);
    
      ui.add(label);
      ui.add(ui.createButton('I am a button!', ui.createServerHandler('onClick')).setId('button'));
    
    
      SpreadsheetApp.getActiveSpreadsheet().show(ui);
    
      return ui;
    };
    
    function onClick(e) {
       var app = UiApp.getActiveApplication();
       app.getElementById('label').setVisible(false);
       //SpreadsheetApp.getActiveSpreadsheet().show(ui);
       app.close();
       return app;  
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多