我是Google脚本中的新手,我想为下面的要求编写一个脚本。我已将电子表格设置为可编辑。
这是链接:
https://docs.google.com/spreadsheets/d/1sDl_umSEJtfQElOCGAgBw0mNDzZ1JGI222h_hVp7YG4/edit?usp=sharing
目标是当行内的日期范围(从今天开始超过日期和返回日期作为每行的日期范围)超过7天时自动隐藏行,并假设返回日期是DUE DATE。
注意:日期格式符合美国。
我需要这个,特别是当我将来有大量数据时。我只需要查看尚未到期的当前行。我试过这个,但它隐藏了一切。
答案 0 :(得分:2)
对于第3-5行,您需要将工作表中的日期格式更正为正确的美国格式(MM-dd-yyyy)。试试下面的剧本
function hideRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = ss.getRange(2, 4,ss.getLastRow()-1).getValues();
for(var i=0;i<range.length;i++){
var expiryDate = getexpiryDate(range[i][0]);
Logger.log(expiryDate)
var today = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
if(expiryDate < today){
ss.hideRows(i+2);
}
}
}
function getexpiryDate(expiryDate) {
var result = new Date(expiryDate);
result.setHours(0,0,0,0);
result.setDate(result.getDate() +7);
return result.convertDate();
}
Date.prototype.convertDate = function() {
var mm = this.getMonth() + 1;
var dd = this.getDate();
return [this.getFullYear(),
(mm>9 ? '' : '0') + mm,
(dd>9 ? '' : '0') + dd
].join('-');
};