Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在两个日期之间从Google电子表格获取数据_Javascript_Node.js_Google Apps Script_Google Sheets_Google Spreadsheet Api - Fatal编程技术网

Javascript 在两个日期之间从Google电子表格获取数据

Javascript 在两个日期之间从Google电子表格获取数据,javascript,node.js,google-apps-script,google-sheets,google-spreadsheet-api,Javascript,Node.js,Google Apps Script,Google Sheets,Google Spreadsheet Api,我正在尝试构建一个nodejs应用程序,它将每周运行一次。它的工作是从上周到今天的谷歌电子表格中获取数据。基本上,我想在上周添加数据 我相信这就是我必须使用的: 但是如果有更好的,一定要告诉我 我认为SpreadSheet.getActiveSheet().getRange()将返回一个包含所有数据的数组,但我不确定在哪里可以添加某种查询以按日期获取数据 差不多 SpreadSheet.getActiveSheet().getRange(date > lastWeek &&

我正在尝试构建一个nodejs应用程序,它将每周运行一次。它的工作是从上周到今天的谷歌电子表格中获取数据。基本上,我想在上周添加数据

我相信这就是我必须使用的: 但是如果有更好的,一定要告诉我

我认为
SpreadSheet.getActiveSheet().getRange()
将返回一个包含所有数据的数组,但我不确定在哪里可以添加某种查询以按日期获取数据

差不多

SpreadSheet.getActiveSheet().getRange(date > lastWeek && date < today)
SpreadSheet.getActiveSheet().getRange(日期>上周和日期<今天)

有什么方法可以实现这一点吗?

据我所知,无法知道何时添加了行,因为这样您的范围就无法工作

我这样做的方法是在每一行上保留一个时间戳,用于记录添加的时间,并迭代所有数据以找到适合的值。(您也可以将最后一行保留在某个位置,然后从那里开始读取)

var sheet=SpreadsheetApp.openById(id).getSheetByName(name)
var data=sheet.getDataRange().getValues();
对于(变量i=0;i上周){
realData.push(数据[i]);
}
}

我最近在google sheet API上做了很多工作,首先我想说,如果有任何方法不使用电子表格存储数据,请改用另一种方法。其次,
getRange()
用于获取单元格范围内的数据,例如A4-F17,它不是日期范围。我不认为你所追求的仅仅是API是可能的,你可能需要考虑将下载的最后一行存储在数据库中的某个地方,然后使用getRange从该行开始。有没有办法知道列的日期,它是何时添加的?看一下或。这将是一个多一点的工作,但你可能会在那里找到你想要的
var sheet = SpreadsheetApp.openById(id).getSheetByName(name)
var data = sheet.getDataRange().getValues();
for (var i = 0 ; i < data.length; i++){
  if (data[i][index_of_timestamp] < today &&  data[i][index_of_timestamp] > lastWeek){
    realData.push(data[i]);
  }
}