2017-08-09 24 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 –