在google脚本中设置datePicker对象的日期

时间:2014-08-08 14:20:06

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

尝试做一些看似简单的事情:

我在Google脚本中有一个小的gui应用程序。我想创建一个datePicker对象,其中包含应用程序工作的电子表格中单元格的值(开始日期)。我在stackOverFlow上查看过许多类似的问题,但仍然无法找到有效的答案。

例如,我的工作表中的单元格(2,5)中有一个日期,由Google自己格式化。我想要一个datePicker来显示该日期。我就在这里。

function testRun()
{
  var ss = SpreadsheetApp.getActive();
  var ui = UiApp.createApplication();
  var controls = ui.createVerticalPanel().setHeight(350).setWidth(350);
  var sheet = ss.getActiveSheet();

//Here I grab a cell's data.  It logs as a date: Sat May 02 00:00:00 GMT-05:00 2015
  var lastDay = sheet.getRange(2, 5).getValue();
  Logger.log(lastDay);

//Here I would like to display a datePicker with the date
  var datePicker = ui.createDatePicker();
  datePicker.setValue(new Date(lastDay));

//datePicker.setvalue(lastDay); also does not work.



  controls.add(datePicker);

总结一下:我无法根据Google表格单元格显示另一天的datePicker。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

日期选择器具有setValue()方法,因此您应该能够使用普通日期对象设置其值...但似乎已被破坏。 dateBox具有相同的方法,但它按预期工作。

这是问题跟踪器的问题,我很害怕。 (刚补充说:issue 4282但是UiApp不再被更新,所以我猜这个bug会永远存在......)

演示代码:

function doGet() {
  var app = UiApp.createApplication();
  app.add(app.createDateBox().setValue(new Date(1958,1,19,2,0,0,0)))
  app.add(app.createDatePicker().setValue(new Date(1958,1,19,2,0,0,0)))
  return app;
}

demo app online

enter image description here

在这个例子中,我将脚本中的日期设置为1958年2月19日,但是从电子表格中读取的日期当然也可以。

PS:这是我的生日约会,我知道我已经老了; - )