0

我正在嘗試構建一個nodejs應用程序,它將在每週運行一次。它的工作是在上週和今天之間從Google Spreadsheet中獲取數據。基本上,我想在上週添加數據。在兩個日期之間從Google電子表格中提取數據

我相信這是我要用的:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet 但是,如果有更好的東西,請告訴我。

我認爲SpreadSheet.getActiveSheet().getRange()將返回一個包含所有數據的數組,但我不確定在哪裏可以添加某種查詢來按日期獲取數據。

喜歡的東西

SpreadSheet.getActiveSheet().getRange(date > lastWeek && date < today) 

有什麼辦法來實現這一點?

+1

我最近做了很多關於谷歌表格API的工作,首先我會說如果沒有任何方法可以使用電子表格來存儲數據,則可以使用其他方式。其次'getRange()'用於獲取單元格範圍內的數據,例如。 A4-F17,它不是日期範圍。 我不認爲你在使用API​​之後可能會有什麼後果,你可能需要考慮在你的數據庫中存儲最後一行下載的地方,然後使用getRange從該行開始。 –

+0

有沒有辦法知道列的添加日期? –

+0

查看[Google Drive API更改()](https://developers.google.com/drive/v2/reference/changes)或[修訂版本()](https://developers.google.com/drive/V2 /參考/修改)。這將是一個更多的工作,但你可能會找到你想要的 –

回答

1

據我所知,沒有辦法知道何時添加一行,因爲您的範圍不起作用。

我會這樣做的方式是在每行上添加一個時間戳,並在迭代所有數據時查找適合的值。 (你也可以保留最後一行讀取的地方並從那裏開始)。

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]); 
    } 
} 
相關問題