【发布时间】:2019-12-23 19:56:28
【问题描述】:
下面是我找到并修改的脚本,它通过从我们的日历中获取事件信息并根据选定的日期范围填充电子表格(经过轻微的重新格式化)来跟踪事件。
目前我必须每周手动更改脚本中的日期以获取我需要的事件。我希望在打开新工作表并将所选日期输入脚本时弹出一个日期选择器,但我还没有弄清楚。任何帮助将不胜感激。
function main(){
var sheet = SpreadsheetApp.getActiveSheet();
sheet.clearContents();
var header = [["Calendar Address", "Calendar Name", "Event Title", "Event Location", "Event Start", "Event Description" ]]
var range = sheet.getRange(1,1,1,6);
range.setValues(header);
sheet.setFrozenRows(1);
// var mycals is an array of google calendar id's; for gsuite, this is the email address of the user which calendar you will be viewing.
var mycals = ['9ss30f8ktuvbedmemka1ve8jss@group.calendar.google.com','8nmutqctujaetrnt5kfvi56kuo@group.calendar.google.com','ae1d2v0sqtktc183546u6cenps@group.calendar.google.com','ilr8eqk2l0ua9pr50t5307ivq8@group.calendar.google.com','5qubvv7mj5vjf7h1hhc23515h8@group.calendar.google.com', 'p2a9plkjd3vv9c87kb5kirapqk@group.calendar.google.com', '9ubfnjrb83tiqgi5l1nitaodp0@group.calendar.google.com', 'l6ouqfpktn05hstmokj8jhr1s4@group.calendar.google.com' ]
for (var j=0;j<mycals.length;j++) {
var cal = CalendarApp.getCalendarById(mycals[j]);
// error handling in case you don't have access to any specified calendar
if (!cal) { continue; }
var events = cal.getEvents(new Date("12/30/2019 00:00:00 EST"), new Date("1/3/2020 23:59:59 EST"));
for (var i=0;i<events.length;i++) {
var row = sheet.getLastRow() + 1
var details=[[events[i].getOriginalCalendarId(),,events[i].getTitle(), events[i].getLocation(), events[i].getStartTime(), events[i].getDescription()]];
var range=sheet.getRange(row,1,1,6);
range.setValues(details);
sheet.getRange(i+2, 5).setNumberFormat("mm/dd/yyyy h:mm Am/PM");
}
sheet.sort(1);
}
var lr= sheet.getLastRow();
for(var k=0+1; k<lr+1;k++){
var workingCell = sheet.getRange(k,1).getValue();
if(workingCell == '9ss30f8ktuvbedmemka1ve8jss@group.calendar.google.com'){
sheet.getRange(k,2).setValue("ATG_Cert");
}
else if(workingCell == '8nmutqctujaetrnt5kfvi56kuo@group.calendar.google.com'){
sheet.getRange(k,2).setValue("Functionality_Test");
}
else if(workingCell == 'ae1d2v0sqtktc183546u6cenps@group.calendar.google.com'){
sheet.getRange(k,2).setValue("Tightness_Test");
}
else if(workingCell == 'ilr8eqk2l0ua9pr50t5307ivq8@group.calendar.google.com'){
sheet.getRange(k,2).setValue("Pre_or_Post_Bury");
}
else if(workingCell == '5qubvv7mj5vjf7h1hhc23515h8@group.calendar.google.com'){
sheet.getRange(k,2).setValue("LLD");
}
else if(workingCell == 'p2a9plkjd3vv9c87kb5kirapqk@group.calendar.google.com'){
sheet.getRange(k,2).setValue("PMI");
}
else if(workingCell == '9ubfnjrb83tiqgi5l1nitaodp0@group.calendar.google.com'){
sheet.getRange(k,2).setValue("Stage_II_DeComm_Test");
}
else if(workingCell == 'l6ouqfpktn05hstmokj8jhr1s4@group.calendar.google.com'){
sheet.getRange(k,2).setValue("Other");
}
}
sheet.getRange(1,1,lr,6).setFontSize(14)
sheet.hideColumns(1);
sheet.autoResizeColumns(1, 6);
sheet.getRange(1, 1, lr, 6).setHorizontalAlignment("left")
}
【问题讨论】:
-
您是否要在 Google Apps 脚本编辑器中添加日期选择器?
-
是的。我想添加到上面的脚本中,以便打开一个新选项卡会触发一个日期选择器,而那些选择的日期将是要抓取的事件范围(第 16 行)。 'var events = cal.getEvents(new Date("12/30/2019 00:00:00 EST"), new Date("1/3/2020 23:59:59 EST"));'
标签: google-apps-script google-sheets datepicker calendar