Google 日历,Java : 根据单元格值设置 google 事件颜色
Google Calendar, Java : Set up google event colour based on cell value
基于 Google 视频教程,我创建了一个函数来在 Google 日历上创建事件。它工作得很好,但我试图根据单元格值设置事件的颜色。
现在我可以设置事件名称、开始日期、结束日期和描述,唯一剩下的就是设置颜色。
我正在尝试这个,但它不起作用:
function Planificacion() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarId = spreadsheet.getRange("F5").getValue();
var eventCal = CalendarApp.getCalendarById(calendarId);
var turnos = spreadsheet.getRange("B9:F10").getValues();
for (x=0;x<turnos.length; x++) {
var turno = turnos[x];
var proyectos = turno[0];
var comienzo = turno[1];
var termino = turno[2];
var instalador = turno[3];
var especialidad = turno[4];
eventCal.createEvent(proyectos,comienzo,termino)
.setDescription(instalador)
.setColor(if (especialidad == "HDPE") {"9"}"
}
}
其中颜色是根据单元格“especialidad”(在西班牙语中表示专业)中的值设置的
错误:语法错误:意外的标记 'if',线路:32,档案:Código.gs
“especialidad”有五个可能的选项,基于“especialidad”,especialidad 的可能值是“HDPE”、“PVC”、“Ferti”、“Elec”、“Soldador”。
我不关心必须根据“especialidad”值设置哪种颜色,对于“HDPE”我选择了蓝色(“9”)
同样,除了颜色部分(错误)外,代码有效
请帮助
谢谢!
问题出在行.setColor(if (especialidad == "HDPE") {"9"}"
除了语法错误(您打开了一个 (
括号并用 "
而不是 )
关闭了它,还有两个更深层次的潜在问题。
- 如果您没有定义如果
especialidad == "HDPE"
计算结果为 false 应该发生什么
- 您不能在方法
.setColor()
中执行 if
语句
相反,您可以先评估 especialidad == "HDPE"
,然后根据结果将结果传递给您作为参数分配给 .setColor()
.
的变量
样本:
...
for (x=0;x<turnos.length; x++) {
...
var color;
if (especialidad == "HDPE") {
color = "9";
}else{
color = "8";
}
eventCal.createEvent(proyectos,comienzo,termino)
.setDescription(instalador)
.setColor(color);
}
...
基于 Google 视频教程,我创建了一个函数来在 Google 日历上创建事件。它工作得很好,但我试图根据单元格值设置事件的颜色。 现在我可以设置事件名称、开始日期、结束日期和描述,唯一剩下的就是设置颜色。
我正在尝试这个,但它不起作用:
function Planificacion() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarId = spreadsheet.getRange("F5").getValue();
var eventCal = CalendarApp.getCalendarById(calendarId);
var turnos = spreadsheet.getRange("B9:F10").getValues();
for (x=0;x<turnos.length; x++) {
var turno = turnos[x];
var proyectos = turno[0];
var comienzo = turno[1];
var termino = turno[2];
var instalador = turno[3];
var especialidad = turno[4];
eventCal.createEvent(proyectos,comienzo,termino)
.setDescription(instalador)
.setColor(if (especialidad == "HDPE") {"9"}"
}
}
其中颜色是根据单元格“especialidad”(在西班牙语中表示专业)中的值设置的 错误:语法错误:意外的标记 'if',线路:32,档案:Código.gs
“especialidad”有五个可能的选项,基于“especialidad”,especialidad 的可能值是“HDPE”、“PVC”、“Ferti”、“Elec”、“Soldador”。 我不关心必须根据“especialidad”值设置哪种颜色,对于“HDPE”我选择了蓝色(“9”)
同样,除了颜色部分(错误)外,代码有效 请帮助
谢谢!
问题出在行.setColor(if (especialidad == "HDPE") {"9"}"
除了语法错误(您打开了一个 (
括号并用 "
而不是 )
关闭了它,还有两个更深层次的潜在问题。
- 如果您没有定义如果
especialidad == "HDPE"
计算结果为 false 应该发生什么
- 您不能在方法
.setColor()
中执行
if
语句
相反,您可以先评估 especialidad == "HDPE"
,然后根据结果将结果传递给您作为参数分配给 .setColor()
.
样本:
...
for (x=0;x<turnos.length; x++) {
...
var color;
if (especialidad == "HDPE") {
color = "9";
}else{
color = "8";
}
eventCal.createEvent(proyectos,comienzo,termino)
.setDescription(instalador)
.setColor(color);
}
...