Google Script를 사용하여 Google Sheets를 JSON으로 구문 분석하려고합니다. 하지만 문제는 데이터가 한 번에 모두 표시된다는 것입니다.
어떻게 같은 매개 변수 URL 만들 수 ?page=1
와 limit=10
페이지 당을?
이것은 내 코드 :
function doGet(e){
// url
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/10S8Igzt1tpqUBgJHVKpny-2s6G3Y3-vFsLMvlZVqpkc/edit#gid=810612111");
var sheet = ss.getSheetByName("list_film");
return getUsers(sheet);
}
function getUsers(sheet){
var jo = {};
var dataArray = [];
var rows = sheet.getRange(5, 1, sheet.getLastRow()-1, sheet.getLastColumn()).getValues();
var rows = sheet.getDataRange().getValues();
for(var i = 0, l= rows.length; i<l ; i++){
var dataRow = rows[i];
var record = {};
record['id'] = dataRow[0];
record['year'] = dataRow[1];
record['title'] = dataRow[2];
record['img'] = dataRow[3];
dataArray.push(record);
}
jo.user = dataArray;
var result = JSON.stringify(jo);
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
}
나는 당신의 목표를 다음과 같이 믿습니다.
?page=1&limit=10
Google Apps Script를 사용하여 Web Apps URL 에의 쿼리 매개 변수를 요청하여 1 행에서 10 행까지의 값을 반환하려고합니다 .{"user":[{"id":"###","year":"###","title":"###","img":"###"},,,]}
.var rows = sheet.getRange(5, 1, sheet.getLastRow()-1, sheet.getLastColumn()).getValues();
을 덮어 씁니다 var rows = sheet.getDataRange().getValues();
.But the problem is data shows all in one time
.e
의를 doGet(e)
.위의 사항이 스크립트에 반영되면 다음과 같이됩니다.
다음 스크립트를 복사하여 스크립트 편집기에 붙여 넣으십시오. 그리고 Web Apps를 새 버전으로 재배포하십시오. 이를 통해 최신 스크립트가 웹 앱에 반영됩니다. 조심하세요.
function doGet(e) {
var page = e.parameter.page || 1;
var limit = e.parameter.limit || 10;
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/10S8Igzt1tpqUBgJHVKpny-2s6G3Y3-vFsLMvlZVqpkc/edit#gid=810612111");
var sheet = ss.getSheetByName("list_film");
return getUsers(sheet, page, limit);
}
function getUsers(sheet, page, limit){
var rows = sheet.getDataRange().getValues();
var dataArray = rows.splice(limit * (page - 1), limit).reduce((ar, [a, b, c, d]) => ar.concat({id: a, year: b, title: c, img: d}), []);
var jo = {};
jo.user = dataArray;
var result = JSON.stringify(jo);
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
}
https://script.google.com/macros/s/###/exec?page=1&limit=10
1 행부터 10 행까지의 값이 반환됩니다. 에 액세스하면 https://script.google.com/macros/s/###/exec?page=3&limit=10
21 행부터 30 행까지의 값이 반환됩니다.https://script.google.com/macros/s/###/exec
1 행부터 10 행까지의 값이 반환됩니다.이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다