我正在使用脚本编辑器编写一个脚本编辑器,用于从谷歌表单中的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);
}