我是JavaScript和Google Speardsheet的新手,我需要一些帮助。 我在google speardsheet中有一个表格,在L列中 - 我有日期。 该表按日期排序,从最旧到最新。
现在,我需要2个功能 - 第一个 - 它将返回表中存在的最后一个(=最新)日期。 第二个 - 它将返回最新日期出现在表格中的第一行。
我成功编写了第一个函数(名为:FindLastDate),但我对第二个函数有问题。 请查看我的代码并提出建议:
function TheFirstRowWithThisDate() {
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getDataRange().getValues();
var i = 0;
var a = 0;
d = FindLastDate();
while (a==0) {
if (dataRange[d][11]==dataRange[i][11])
{ var a=i
}
i=i+1;
}
return a
}
答案 0 :(得分:0)
由于许多原因,日期处理起来很棘手 - 电子表格单元格的格式,电子表格的时区和脚本都是其中的一部分。
所以,根据你的要求,我会用艰难的方式解析日期。
function TheFirstRowWithThisDate() {
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getDataRange().getValues();
var d = FindLastDate();
var lastDate = new Date(d);
for( var i = 0 ; i < dataRange.length ; i++){
var tempDate = new Date(dataRange[i][11]); // Col L
if(tempDate.getDate() == lastDate.getDate() &&
tempDate.getMonth() == lastDate.getMonth() &&
tempDate.getFullYear() == lastDate.getFullYear() ) {
return (i+1); // Return the row number which is 1 more than the index
}
}
return 0;
}