将GUI中的数据保存回Google Spread Sheet

时间:2012-11-20 12:38:17

标签: google-apps-script

尝试将GUI中活动UI构建的数据保存回电子表格。但无法弄清楚如何从UI中的文本框中检索字符串值。这就是我想要做的事情:

function saveChanges() {  
  var Text;
  var Location;
  var app = UiApp.getActiveApplication();

  Text = app.getElementById('CompanyLegalNameTextBox').getText();
  Location = "C3";
  SpreadsheetApp.getActiveSheet().getRange('Location').setValue('Text');  
}

获取错误:TypeError:无法在对象Generic中找到函数getText。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您关注的具体细节是getElementById返回不支持任何get操作的GenericWidget这一事实。

另一个令人困惑的方面是Id和Name。使用名称传递回调函数的参数,getElementById使用Id(顾名思义)。为简单起见,我通常将我的小部件的名称和ID同时设置为同一个东西。然后,您可以通过addCallbackElement

将引用添加到回调中来传递对小部件的引用
   ///snippet
   var textBox = app.createTextBox()
                   .setId('CompanyLegalNameTextBox')
                   .setName('CompanyLegalNameTextBox');

  app.add(textBox);
  var handler = app.createServerHandler('saveChanges');
  handler.addCallbackElement(textBox);
  button.addClickHandler(handler); //button defined elsewhere

您的回拨代码如下所示 - 请注意“e”参数

  function saveChanges(e) {  
    var textValue = e.parameter.CompanyLegalNameTextBox;
    ///snippet 
  }

答案 1 :(得分:0)

the UI App documentation详细解释了这一点,请在询问之前阅读。