在两个日期之间从Google电子表格中提取数据
问题描述:
我正在尝试构建一个nodejs应用程序,它将在每周运行一次。它的工作是在上周和今天之间从Google Spreadsheet中获取数据。基本上,我想在上周添加数据。在两个日期之间从Google电子表格中提取数据
我相信这是我要用的:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet 但是,如果有更好的东西,请告诉我。
我认为SpreadSheet.getActiveSheet().getRange()
将返回一个包含所有数据的数组,但我不确定在哪里可以添加某种查询来按日期获取数据。
喜欢的东西
SpreadSheet.getActiveSheet().getRange(date > lastWeek && date < today)
有什么办法来实现这一点?
答
据我所知,没有办法知道何时添加一行,因为您的范围不起作用。
我会这样做的方式是在每行上添加一个时间戳,并在迭代所有数据时查找适合的值。 (你也可以保留最后一行读取的地方并从那里开始)。
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]);
}
}
我最近做了很多关于谷歌表格API的工作,首先我会说如果没有任何方法可以使用电子表格来存储数据,则可以使用其他方式。其次'getRange()'用于获取单元格范围内的数据,例如。 A4-F17,它不是日期范围。 我不认为你在使用API之后可能会有什么后果,你可能需要考虑在你的数据库中存储最后一行下载的地方,然后使用getRange从该行开始。 –
有没有办法知道列的添加日期? –
查看[Google Drive API更改()](https://developers.google.com/drive/v2/reference/changes)或[修订版本()](https://developers.google.com/drive/V2 /参考/修改)。这将是一个更多的工作,但你可能会找到你想要的 –