Google表格 - 根据日期删除过期的行

时间:2016-12-13 05:46:26

标签: javascript google-sheets

我目前正在尝试创建一个脚本或字面上任何能够在C列中给定日期之后删除一行的内容。

该网站是赠品网站,因此我需要行/条目在C列上指定的日期通过后自行删除。

例如:如果一个赠品有一个到期日期@ 20/13/2016,一旦日期到达2016年3月20日这个日期,它将删除该行。我遵循dd / mm / yy的公制系统作为注释。

我在Google Sheets - Script to delete date expired rows看到了与此类似的问题,但代码无法满足我的需求。

以下是另一个问题中使用的代码。

 var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Foglio1");
var datarange = sheet.getDataRange();
var lastrow = datarange.getLastRow();
var values = datarange.getValues();// get all data in a 2D array

var currentDate = new Date();
var oneweekago = new Date();
oneweekago.setDate(currentDate.getDate() - 7);

for (i=lastrow;i>=2;i--) {
var tempdate = values[i-1][2];// arrays are 0 indexed so row1 = values[0] and col3 = [2]

if(tempdate < oneweekago)  
{
  sheet.deleteRow(i);
}
}
}

如果您可以根据我的上述需求进行更改,我们将不胜感激!

1 个答案:

答案 0 :(得分:1)

假设您的日期在C栏中,则应该这样做。调整只是我们比较和处理缺失日期的日期。为了便于阅读,我也在处理一些名称的案例。

function DeleteOldEntries() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Live Events");//assumes Live Events is the name of the sheet
var datarange = sheet.getDataRange();
var lastrow = datarange.getLastRow();
var values = datarange.getValues();// get all data in a 2D array

var currentDate = new Date();//today

for (i=lastrow;i>=3;i--) {
var tempDate = values[i-1][2];// arrays are 0 indexed so row1 = values[0] and col3 = [2]
if ((tempDate!=NaN) && (tempDate <= currentDate))
{
  sheet.deleteRow(i);
}//closes if
}//closes for loop
}//closes function