首页 > 解决方案 > GoogleAppScript - 当该行的详细信息用于制作谷歌日历事件时,如何自动勾选特定工作表行中的复选框?

问题描述

我目前有一个特定的功能,它为存储在特定谷歌工作表的每一行中的详细信息创建一个日历事件。问题是,当使用特定行上的信息进行输入时,我需要使复选框从未选中变为已选中,并且我还需要添加一个条件语句,在执行部分之前检查复选框是否已选中事件创建发生。我目前正在制作一个 python 烧瓶网络应用程序,它使用 G-Sheet 作为数据库,这是我需要使用应用程序脚本实现的功能之一。

这是我编写的应用程序脚本代码:

function addEvent() {
  let webinarCalendar = CalendarApp.getCalendarById("blablablablabla@gmail.com");
  let calendarSheet = SpreadsheetApp.getActiveSheet();
  let schedule = calendarSheet.getDataRange().getValues();
  schedule.splice(0, 1)
  schedule.forEach(function(entry) {
    webinarCalendar.createEvent(entry[3], entry[11], entry[12], {description: entry[10]});
  }
  );
}

我对javascript一点也不熟悉,但我打算很快开始学习它。仅依靠应用程序脚本文档,我就能够做到这一点,但这就是我遇到的障碍,我目前的技能水平似乎无法解决。任何帮助将非常感激。

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


function addEvent() {
  let webinarCalendar = CalendarApp.getCalendarById("blablablablabla@gmail.com");
  let calendarSheet = SpreadsheetApp.getActiveSheet();
  let schedule = calendarSheet.getDataRange().getValues();
  schedule.splice(0, 1);

  const k = 13; // colIndex of checkbok col
  const created = schedule.map(e => [e[k]]);
  schedule.forEach(function(entry, i) {
    if (entry[k] == true) { return; }
    webinarCalendar.createEvent(entry[3], entry[11], entry[12], {description: entry[10]});
    created[i][0] = true;
  });
  calendarSheet.getRange(2, k + 1, created.length, 1).setValues(created);
}

参考:

设置值(值)


推荐阅读