Google Apps脚本 - 每天增量列 - Google电子表格

时间:2016-02-04 03:59:17

标签: google-apps-script google-sheets increment

我需要应用程序脚本每天以增量方式扫描每一列。如果它今天扫描一列说是A列,那么第二天应该扫描下一列B.

要触发此功能,每日计时器将在一天中的特定时间使用。 以下代码一次扫描所有列。

问题在于,每天都会触发一次应用脚本。所以它从头开始。如何存储它昨天扫描的列,并在今天增加它。

function AutoSend() {  

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var list= new Array();
for(var j= 2; j<=29;j++){  // for Column 
    for(var i=5;i<=23;i++){   // for row
       var value = sheet.getRange(i, j).getValue();
        if(value !== "OFF"){  if(value !== "L") { if(value !== "COMP OFF") {
        var EmpName= sheet.getRange(i,1).getValue();
        list.push(EmpName);
        }}}
      }
     }
Logger.log(list);
var subject= "sub";
var message = list;          
MailApp.sendEmail('example@gmail.com',subject, message);
} 

1 个答案:

答案 0 :(得分:2)

您可能需要将数据存储在文档属性中。

PropertiesService.getDocumentProperties().setProperty(key, value);

您可能希望将日期用作key的字符串,并将列号用作值。

var theColumn = 9; //To Do - get the correct column number
var todaysDate = new Date().toString();
Logger.log('todaysDate: ' + todaysDate);

todaysDate = todaysDate.slice(0,15); //Remove time off the end
Logger.log('todaysDate: ' + todaysDate);

PropertiesService.getDocumentProperties().setProperty(todaysDate, theColumn);

var theColumnForTheDate = PropertiesService.getDocumentProperties()
  .getProperty(todaysDate);
Logger.log('theColumnForTheDate: ' + theColumnForTheDate);