我正在尝试编写一个 Google 应用脚本来完成以下任务:
根据 Google 日历中的几列更新 Google 日历 电子表格表示:
a。事件是否指定了日期(列“date”!=“”)
- b.该事件是否已发布到日历中 (“在日历中”列=“”)。
- 将事件添加到日历后,我想在电子表格的某一列(“在日历中”列)中添加"is"。
- 如果可能,根据特定列中的属性自动更改事件的颜色(即,如果列“State”= NM,则事件的颜色为蓝色,如果“State”= MT,则事件的颜色为紫色等)
我查看了整个网络上的各种帖子(主要是 http://blog.ouseful.info/2010/03/07/maintaining-a-google-calendar-from-a-goole-spreadsheet-reprise/ 和 http://blog.ouseful.info/2010/03/04/maintaining-google-calendars-from-a-google-spreadsheet/ ),
我已经编写了以下脚本:
var IN_CAL = "Yes";
function caltest() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var data = sheet.getDataRange().getValues(); // Process any rows with data
var cal = CalendarApp.getCalendarsByName("Oil and Gas Test 3")[0];
for (i in data) {
var row = data[i];
var state = row[2] // 3rd column, column with state
var desc = row[5]; // 6th column, column with lease description
var date = row[4]; // 5th column, column with date
var title = state+": "+desc;
var inCalendar = row[1]; // 2nd column, tells whether in calendar or not
if ((inCalendar != IN_CAL)&&(date != " ")) { // Prevents adding duplicates to calendar
cal.createAllDayEvent(title, new Date(date))
var v = parseInt(i)+1;
sheet.getRange(v, 2, 1).setValue(IN_CAL);
SpreadsheetApp.flush(); // Makes sure the cell is updated right away in case the script is interrupted
}
}
}
如果有帮助的话,我的电子表格的列按以下顺序排列:
Project Number | In Calendar | State | Lease Date | Date | Description.
我引用了“日历”、“状态”、“日期”和“说明”
在我的脚本中。
它的主要作用似乎是将事件添加到日历中,除了:
- 脚本正在向“日历中”列中的所有单元格添加"is" 无论“日期”栏中是否有日期; 和
- 我什至没有尝试过调整颜色。
在决定是否应创建事件并将“日历中”列更新为"is"时,是否有人对如何让脚本读取“日历中”和“日期”列有任何提示?我知道没有日期可能不会创建事件,但我不希望没有日期的行在“日历中”列中显示为"is"。我还希望脚本读取包含数据的整个“日历”列,而不是预定义的行数。
另外,关于如何自动更改单个事件的颜色有什么提示吗?
如果您需要更多信息,请告诉我。
最佳答案
通过单击行号向代码添加断点。你会得到一个红点。请参阅第 12 行。
然后单击错误图标。
您将看到所有变量值都显示在屏幕底部的窗口中。
点击“步入”图标:
如果电子表格单元格中的日期格式为日期,则日期值应如下所示:
Thu Mar 12 2015 19:01:08 GMT-0400 (EDT)
如果单元格格式为字符串,则测试需要如下所示:
if (date != "") {
但是,无论如何,请单步执行代码,并查看 date
变量的数据类型和值。 (以及 inCalendar
变量)根据实际检索的值,将确定您需要对条件进行哪些检查。
我猜:
(date != " ")
始终评估为true
关于javascript - 对使用 Google 电子表格维护/更新 Google 日历(包括自动更改颜色)的脚本进行故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110929/