如何显示来自 google sheet 的最新 3 条数据
How to display latest 3 data from google sheet
我正在做一个电报机器人来检索我所有的费用。我正在做一个功能来检索最近的 3 笔费用。
这是列出我的费用的部分,它将显示所有费用
function doPost(e) {
var contents = JSON.parse(e.postData.contents);
var ssId = "<< ssId >>";
var sheet = SpreadsheetApp.openById(ssId).getSheetByName("Sheet1");
if (contents.callback_query) {
var id = contents.callback_query.from.id;
var data = contents.callback_query.data;
if (data == 'expenses') {
var expenses = [];
var lr = sheet.getDataRange().getLastRow();
for(var i = 6; i <=lr; i++) { //my expenses record start from cell A6
var date = sheet.getRange(i,1).getValue();
var month = new Array();
month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";
var formatedDate = date.getDate() + " " + (month[date.getMonth()]) + " " + date.getFullYear();
var item = sheet.getRange(i,2).getValue();
var price = sheet.getRange(i,3).getValue();
expenses.push("\n" + formatedDate + " | " + item + " | " + price );
var expenseList = expenses.join("\n");
}
sendText(id, decodeURI( "Here your last expenses: " + "\n" + expenseList ));
}
My google sheet looks like
Date | Expenses | Price
03 Mar 2020 | Cookies | 6
04 Mar 2020 | Bread | 5
05 Mar 2020 | Drinks | 7
06 Mar 2020 | Chocolate| 8
07 Mar 2020 | Buns | 7
08 Mar 2020 | Sweets | 7
既然你已经把每笔费用都推入数组 expenses
,为什么不使用 Array.prototype.slice() 方法,用你选择的 expenses
的一部分创建一个新数组。
对于您的示例,最后一行可以更改为:
sendText(id, decodeURI( "Here your last expenses: " + "\n" + expenses.slice(-3).join("\n") ));
你可以不用 expenseList
变量。
我正在做一个电报机器人来检索我所有的费用。我正在做一个功能来检索最近的 3 笔费用。
这是列出我的费用的部分,它将显示所有费用
function doPost(e) {
var contents = JSON.parse(e.postData.contents);
var ssId = "<< ssId >>";
var sheet = SpreadsheetApp.openById(ssId).getSheetByName("Sheet1");
if (contents.callback_query) {
var id = contents.callback_query.from.id;
var data = contents.callback_query.data;
if (data == 'expenses') {
var expenses = [];
var lr = sheet.getDataRange().getLastRow();
for(var i = 6; i <=lr; i++) { //my expenses record start from cell A6
var date = sheet.getRange(i,1).getValue();
var month = new Array();
month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";
var formatedDate = date.getDate() + " " + (month[date.getMonth()]) + " " + date.getFullYear();
var item = sheet.getRange(i,2).getValue();
var price = sheet.getRange(i,3).getValue();
expenses.push("\n" + formatedDate + " | " + item + " | " + price );
var expenseList = expenses.join("\n");
}
sendText(id, decodeURI( "Here your last expenses: " + "\n" + expenseList ));
}
My google sheet looks like
Date | Expenses | Price
03 Mar 2020 | Cookies | 6
04 Mar 2020 | Bread | 5
05 Mar 2020 | Drinks | 7
06 Mar 2020 | Chocolate| 8
07 Mar 2020 | Buns | 7
08 Mar 2020 | Sweets | 7
既然你已经把每笔费用都推入数组 expenses
,为什么不使用 Array.prototype.slice() 方法,用你选择的 expenses
的一部分创建一个新数组。
对于您的示例,最后一行可以更改为:
sendText(id, decodeURI( "Here your last expenses: " + "\n" + expenses.slice(-3).join("\n") ));
你可以不用 expenseList
变量。