0

매주 한 번씩 실행되는 nodejs 애플리케이션을 구축하려고합니다. 이 작업은 지난 주와 오늘 사이 Google 스프레드 시트에서 데이터를 가져 오는 것입니다. 기본적으로 지난 주 동안 데이터를 추가하려고합니다.두 날짜 사이에 Google 스프레드 시트에서 데이터 가져 오기

나는 이것을 사용해야한다고 생각합니다 : https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet 하지만 더 좋은 점이 있다면 알려주세요.

나는 SpreadSheet.getActiveSheet().getRange()이 모든 데이터가있는 배열을 반환 할 것이라고 생각하지만 데이터를 가져 와서 날짜별로 데이터를 가져올 수 있는지 모르겠습니다.

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

이를 구현하기 위해 어떤 방법이 있나요

같은 뭔가?

+1

Google 스프레드 시트를 사용하지 않고 데이터를 저장하는 방법이 있다면, 저는 다른 방법을 대신 사용하여 Google 시트 API로 작업 한 적이 있습니다. 둘째'getRange()'는 셀 범위의 데이터를 가져 오는 데 사용됩니다. A4-F17, 날짜 범위가 아닙니다. API를 사용하는 것이 가능하다고 생각하지 않으므로 마지막 행을 db의 어딘가에 저장 한 다음 getRange를 사용하여 해당 행에서부터 시작해야합니다. –

+0

열을 추가 할 때 날짜를 알 수있는 방법이 있습니까? –

+0

[Google 드라이브 API 변경 사항()] (https://developers.google.com/drive/v2/reference/changes) 또는 [버전()] (https://developers.google.com/drive)/v2/reference/revisions). 조금 더 많은 일이 될 것이지만, 당신이 원하는 것을 찾을 수 있습니다. –

답변

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]); 
    } 
} 
관련 문제