使用脚本编辑器在Google工作表中查找缺少的时间戳

时间:2018-06-01 17:33:49

标签: javascript google-sheets-api

我正在使用脚本编辑器编写一个脚本编辑器,用于从谷歌表单中的Q / A生成的Google工作表。这个谷歌表格假设每小时填写一次。

以下是Google表格的示例https://docs.google.com/spreadsheets/d/1rR_em05sa4aRMAEcKAreJ5x22JO4TPus0rToVNpRo6s/edit?usp=sharing

目标是能够确定每天缺少的小时数,并返回缺少的小时数,以便我能够确定当时没有填写Google文档的人员。

在这种情况下正在处理的列是前面提供的Google工作表中的B列。

我的问题是,一旦我查看表单,我意识到有重复的条目并且没有排序。所以这是我在代码中尝试解决的第一件事,但无论出于什么原因它都无法正常工作。另外,我不知道如何找到丢失的时间戳,但我想到了一种方法。第二个问题是我不确定如何比较军事时间以使算法发挥作用。



function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var timestamps = sheet.getRange(2,2,16) //(row, column, NumRows), need to figure out how to get timestamps only for current day 
  // Fetch values for each row in the Range.
  var list = timestamps.getValues();
 
  //remove duplicate timestamps 
  var newlist = new Array();// new list of timestamps without duplicates
  for(i in list){
    var row = list[i];
    var duplicate = false;
    for(j in newlist){
      if(row.join() == newlist[j].join()){
        duplicate = true;
      }
    }
    if(!duplicate){
      newlist.push(row);
    }
  }
  
  newlist.sort();//sort the timestamps  
  
  //find missing timestamps and add to a new array, THIS NEEDS WORK 
  var missingTime = new Array();
  var time = "8:00";
  
  for (i in newlist){
    if(time == newlist[i])
     time++;
    if(time != newlist[i])
     missingTime.push(newlist[i]);
  }
  
  var emailAddress = "enter a email address here";
  var subject = ("Report for Head Counts " + Utilities.formatDate(new Date(), "GMT+1", "MM/dd/yyyy"));
  var message = missingTime;
  MailApp.sendEmail(emailAddress, subject, message);
  
}




0 个答案:

没有答案