2017-08-09 87 views
0

我修改了一个公用脚本以处理电子表格中的到期日期。我想添加另一栏的信息来帮助您了解详情。其他变量都符合我的预期,但添加变量“model”时,它将输出该列上的所有内容,而不管行是什么。我有一个奇数变量显示整个列的内容

function checkReminder() { 
// get the spreadsheet object 
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
// set the first sheet as active 
SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]); 
// fetch this sheet 
var sheet = spreadsheet.getActiveSheet(); 

// figure out what the last row is 
var lastRow = sheet.getLastRow(); 

// the rows are indexed starting at 1, and the first row 
// is the headers, so start with row 2 
var startRow = 2; 

// grab column 8 (the 'days left' column) 
var range = sheet.getRange(2,8,lastRow-startRow+1,1); 
var numRows = range.getNumRows(); 
var days_left_values = range.getValues(); 

// Now, grab the name column 
range = sheet.getRange(2, 1, lastRow-startRow+1, 1); 
var reminder_info_values = range.getValues(); 

// Now, grab the model column 
range = sheet.getRange(2, 4, lastRow-startRow+1, 1); 
var model = range.getValues(); 

var warning_count = 0; 
var msg = ""; 

// Loop over the days left values 
for (var i = 0; i <= numRows - 1; i++) { 
var days_left = days_left_values[i][0]; 
if(days_left <= 60) { 
    // if it's less than 60 days until due date. 
    var reminder_name = reminder_info_values[i][0]; 

    msg = msg + ""+reminder_name+" Watchguard model "+model+" is due in 
"+days_left+" days.\n"; 
    warning_count++; 
} 
} 

if(warning_count) { 
MailApp.sendEmail("[email protected], [email protected]", 
    "Watchguard Expiration List", msg); 
} 


}; 

我得到的输出将看起来像这样 金属特产,公司Watchguard的WGD-WG026063,WGD-WG25003,XTM
25,WGD-WG026583,XTM 26-W,AP 300,AP 200,AP 200 ,AP200,WG2-WG026063,XTM
25,M440,WGD-WGT30061-US,AP300,WGD-WG026583,AP200,XTM26,WG-WGM20083,AP
200,WGD-WG002503,WGD- WG002503 ,T30-W,AP 200,XTM
26-W,M400,WGD-WGAP3003,WGD-WG515063,WGD-WG330083,WGD-WG515063,XTM
515,WGD-WG330063,XTM 330,M300,T30-W ,T30-W,WGD-WG330063,WG-WGM20083,AP
300,T30-W,T10-W,WGD-WGT30033-US,WGD-WGT31033-US,AP
300,T30-W,WGD-WFT31033-US,T30-W,T30-W,T30-W ,T30-W,T30-W,MCA-SG560U-MTU,WGD-WG330063,WGD-WG330063,WGD-WG330063,WGD-WG330063,T30-W,WGD-WG330083,T30,WGD-WG330063,AP

300,T30-W,T30-W,T30-W,WGD-WGT31033-US,AP
320,WGD-WGA32443,WGD-WGT31033-US,T30-W,T10-W,AP 320,T30,WGD- 200,AP200,AP200,AP200,AP200,AP200,AP200,AP
200,AP
200,M200,T30-W, T30-W,watchguard ,WGD-WG002503,WGD-WG002503,WGD-WG002503,WGD-WG002503,WGD-WG026051 ,WGD-WG25003,WGD-WG330083,WGD-WGAP3001,WGD-WGT31031-US

在几天内到期。

它应该是这样的

金属特产,公司Watchguard的模型WGD-WGT31031美国是由于天。

+0

我也想它忽略过期的或者过期的状态。 –

回答

2

看起来是刚刚倾倒整个model阵列值,而不是循环值一样var days_left = days_left_values[i][0];var reminder_name = reminder_info_values[i][0];

索引添加到model

function checkReminder() { 
... 
    for (var i = 0; i <= numRows - 1; i++) { 
    ... 

    // Update model to only display the current row value 
    msg = msg + ""+reminder_name+" Watchguard model "+model[i][0]+" is due in "+days_left+" days.\n"; 
    warning_count++; 
    } 
... 
} 
+0

非常感谢你不会碰巧也知道如何让它忽略或陈述过期,如果它剩下的时间是空白的? –

+0

调整你的'if(days_left <= 60)'语句,使它做你想做的事情。要么忽略它,要么输出一个不同的字符串。 [if ... else/else if](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/if...else)javascript docs –

相关问题