通过谷歌应用程序脚本的颜色填充电子表格中的谷歌日历事件

Fill Google calendar events in spreadsheet by color via Google apps script

本文关键字:谷歌 电子表格 日历 事件 填充 颜色 应用程序 脚本      更新时间:2023-09-26

到目前为止,我使用以下方法将Google日历上指定日期范围内的事件添加到电子表格中。然而,我想知道是否有一种方法可以根据谷歌日历的颜色为电子表格事件上色。谢谢你的关注。

function calendartosheet(){
  var cal = CalendarApp.getCalendarById('CALENDAR_ID');
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SHEET_NAME");
  var events = cal.getEvents(new Date("October 1, 2015"), new Date("October 14, 2015"));
for (var i=0;i<events.length;i++) {
var details=[[events[i].getTitle(), events[i].getStartTime(), events[i].getDescription(), events[i].getEndTime()]];
var row=i+1;
var range=sheet.getRange(row,1,1,4);
range.setValues(details);
}
}

您可以使用"getColor()"函数获取日历的颜色。要设置相同的颜色你可以调用setBackground(color);"

所以你的代码可以是这样的:
function calendartosheet(){
  var cal = CalendarApp.getCalendarById('CALENDAR_ID');
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SHEET_NAME");
  var events = cal.getEvents(new Date("October 1, 2015"), new Date("October 14, 2015"));
  var color = cal.getColor();
for (var i=0;i<events.length;i++) {
var details=[[events[i].getTitle(), events[i].getStartTime(), events[i].getDescription(), events[i].getEndTime()]];
var row=i+1;
var range=sheet.getRange(row,1,1,4);
range.setValues(details);
range.setBackground(color);
}
}