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"}"

除了语法错误(您打开了一个 ( 括号并用 " 而不是 ) 关闭了它,还有两个更深层次的潜在问题。

  1. 如果您没有定义如果 especialidad == "HDPE" 计算结果为 false
  2. 应该发生什么
  3. 您不能在方法 .setColor()
  4. 中执行 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);
    }
...