我正在尝试编写Google应用脚本来完成以下操作:
根据Google中的几个列更新Google日历 电子表格,表示:
一个。该事件是否具有指定日期(列"日期"!="")
我查看了整个网络上的各种帖子(主要是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
}
}
}

如果有帮助,我的电子表格的列按以下顺序排列:
项目编号|在日历|国家|租赁日期|日期|描述
我参考" 在日历中"," 州"," 日期"和" 说明"
在我的剧本中。
似乎主要是因为它将事件添加到日历中,除了:
有没有人知道如何让脚本同时阅读"在日历"和"日期"决定是否应创建事件时的列和" In Calendar"列应更新为"是"?我知道可能没有约会就创建了一个活动,但我不想要没有日期的行阅读"是"在"在日历"柱。我还希望脚本能够阅读整个" In Calendar"包含数据的列,而不是预定义的行数。
此外,有关如何自动更改单个事件颜色的任何提示?
如果您需要其他信息,请与我们联系。
答案 0 :(得分:0)
通过单击行号为代码添加断点。你会得到一个红点。见第12行。
然后点击错误图标。
您将看到所有变量值都显示在屏幕底部的窗口中。
点击“Step In”图标:
如果电子表格单元格中的日期格式化为日期,则日期值应如下所示:
2015年3月12日星期四19:01:08 GMT-0400(美国东部时间)
如果单元格格式化为字符串,则测试需要如下所示:
if (date != "") {
但是,无论如何,请逐步执行代码,并查看date
变量的数据类型和值。 (和inCalendar
变量)根据实际检索的值,将确定您需要对条件进行哪些检查。
我在猜测:
(date != " ")
始终评估为true