通过将其放入Google Apps脚本中的本地数组中来加快我的日历 - 重新缩写脚本的速度问题
我正在编写代码以跟踪我的时间,从Google日历中检索日历项目,然后将其写入Google表格。
我已经在使用批处理阵列来加速该过程,但是我觉得我可以使其更快。我尝试使用MAP功能(请参见下面的虚拟代码,由)但这没有解决。
我的代码:
function getCalendarEvents() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
var cal = CalendarApp.getCalendarById("[email protected]");
var eind = new Date;
eind.setDate(eind.getDate()+1);
var events = cal.getEvents(new Date("1/1/2022"), eind);
var lr = ss.getLastRow();
ss.getRange(3, 1, lr,14).clearContent();
// var sd = events.map(function(r){ return [r[0],[2]]} );
// ss.getRange(3, 2, sd.length,sd[0].length).setValues(sd);
for(var i = 0;i<events.length;i++) {
var sd = events[i].getStartTime();
var title = events[i].getTitle();
var ed = events[i].getEndTime();
var des = events[i].getDescription();
var rec = events[i].isRecurringEvent();
var cre = events[i].getDateCreated();
var upd = events[i].getLastUpdated();
var own = events[i].getCreators();
ss.getRange(i+3, 2).setValue(sd);
ss.getRange(i+3, 2).setNumberFormat("ddd d-m-yyyy");
ss.getRange(i+3, 5).setValue(ed);
ss.getRange(i+3, 5).setNumberFormat("h:mm");
ss.getRange(i+3, 9).setValue(title);
ss.getRange(i+3, 10).setValue(des);
ss.getRange(i+3, 11).setValue(cre);
ss.getRange(i+3, 12).setValue(upd);
ss.getRange(i+3, 13).setValue(rec);
ss.getRange(i+3, 14).setValue(own);
}
}
如何将代码放在批处理数组中的“ setValue”摘要(在循环中)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试这个(未经测试但可以工作)
Try this (not tested but could work)