gpt4 book ai didi

javascript - 对使用 Google 电子表格维护/更新 Google 日历(包括自动更改颜色)的脚本进行故障排除

转载 作者:行者123 更新时间:2023-11-28 07:31:10 30 4
gpt4 key购买 nike

我正在尝试编写一个 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.

我引用了“日历”、“状态”、“日期”和“说明

在我的脚本中。

它的主要作用似乎是将事件添加到日历中,除了:

  1. 脚本正在向“日历中”列中的所有单元格添加"is"无论“日期”栏中是否有日期;和
  2. 我什至没有尝试过调整颜色。

在决定是否应创建事件并将“日历中”列更新为"is"时,是否有人对如何让脚本读取“日历中”和“日期”列有任何提示?我知道没有日期可能不会创建事件,但我不希望没有日期的行在“日历中”列中显示为"is"。我还希望脚本读取包含数据的整个“日历”列,而不是预定义的行数。

另外,关于如何自动更改单个事件的颜色有什么提示吗?

如果您需要更多信息,请告诉我。

最佳答案

通过单击行号向代码添加断点。你会得到一个红点。请参阅第 12 行。

Break Point

然后单击错误图标。

Click Bug

您将看到所有变量值都显示在屏幕底部的窗口中。

Debug Break

点击“步入”图标:

Step In

如果电子表格单元格中的日期格式为日期,则日期值应如下所示:

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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com