1

好的,我已经为此工作了大约一个月。我已经尝试了许多不同的方法来做到这一点,我想我已经接近了。我不是专家,但这就是我想要做的。我创建了一个表单,让我可以为儿子捕获行为数据。(他患有自闭症,这就是为什么这很重要。)我可以将表格中的数据输入结果电子表格,然后将数据传输到新的报告样式的预格式化电子表格中。我不能做的是有效地过滤日期。我的脚本如下。

function onOpen() {
var rawdata=SpreadsheetApp.openById("0AtkuL_H_DshvdFU5U1dBLVI1NWhlWXdSNjBXOHdIaUE");
var sheet1=rawdata.getSheetByName("FormResponses");
var maxrows=sheet1.getMaxRows();
var lastcol = sheet.getLastColumn();
var vals=sheet1.getRange(1,1,maxrows,1).getValues();

  var date = new Date();
  var newDate = date.setDate(date.getDate()+1);
  var Sdate=Utilities.formatDate(date,"GMT-0400","yyyy:MM:dd");
  var newerDate=Utilities.formatDate(newDate,"GMT-0400","yyyy:MM:dd");

var filter=ArrayLib.filterByDate(vals,1,Sdate,newerDate);
var range1 = sheet1.getRange(1,1,filter,lastcol);
var values = range1.getValues();
var target = SpreadsheetApp.openById("0AtkuL_H_DshvdGxWNGJ0ZjA2VU5zV01iaVNacDZQYWc")
var sheet2 = target.getSheetByName("Sheet1");
var range2 = sheet2.getRange(4,1,i,7);
SpreadsheetApp.setActiveSpreadsheet(rawdata);
values
SpreadsheetApp.setActiveSpreadsheet(target);
range2.setValues(values);
}


//for (var i = 0; i < maxrows; i++) if (Date.parse(vals[i]).valueOf() >= todaydt.valueOf() );

最后一行是我尝试过滤日期的先前方式。那是我不能完全开始工作的部分。我面临的部分挑战是我还不太了解“for”命令。我正在上 CodeAcademy java 课程,但由于我工作,有一个家庭,所以不要为了谋生而做这件事,进展缓慢。我搜索了大约一千个网站并尝试了多种过滤日期的方法,但我无法让它们中的任何一个起作用。任何帮助表示赞赏。

4

1 回答 1

0

我假设 arraylib.filterbydate 需要日期,但您正在传递字符串。尝试通过日期。或者,如果该库允许,则仅按字符串过滤。由于您将日期字符串格式化为 yyyymmdd 您的字符串比较可以工作。

于 2013-09-10T13:13:38.663 回答