Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CalendarApp在google sheet加载项中不工作_Javascript_Google Apps Script_Google Sheets_Google Apps Script Addon - Fatal编程技术网

Javascript CalendarApp在google sheet加载项中不工作

Javascript CalendarApp在google sheet加载项中不工作,javascript,google-apps-script,google-sheets,google-apps-script-addon,Javascript,Google Apps Script,Google Sheets,Google Apps Script Addon,我正在使用googleapps脚本为电子表格制作一个插件,其中电子表格数据将用于在google日历中创建事件。一切正常,除非我从测试插件运行代码,因为某些原因,事件不会添加到日历中。但是如果我从脚本中运行代码,那么它就可以正常工作。这是我的密码 function createEvent(date, start_time, end_time, event_title) { var dateCol = 0; var startCol = 0; var endCol = 0; var

我正在使用
googleapps脚本
为电子表格制作一个插件,其中电子表格数据将用于在google日历中创建事件。一切正常,除非我从测试插件运行代码,因为某些原因,事件不会添加到日历中。但是如果我从脚本中运行代码,那么它就可以正常工作。这是我的密码

function createEvent(date, start_time, end_time, event_title)
{
  var dateCol = 0;
  var startCol = 0;
  var endCol = 0;
  var titleCol=0;

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getActiveSheet();
  var lr = dataSheet.getLastRow()-1;
  var lc = dataSheet.getLastColumn();

  var rng = dataSheet.getRange(1, 1, 1, lc).getValues();

  // This will match the column corresponsing to our selected value in dropdown from html sidebar.
  for (var i=0; i < rng[0].length; i++)
  {
    if (date == rng[0][i]) {
      dateCol = i;
    }
    if (start_time == rng[0][i]) {
      startCol = i;
    }
    if (end_time == rng[0][i]) {
      endCol = i;
    }
    if (event_title == rng[0][i]) {
      titleCol = i;
    }
  }

  // This part handles the creating of an event in calendar
  var getUser = Session.getEffectiveUser().getUserLoginId();
  var getCal = CalendarApp.getCalendarById(getUser);

  var data_rng = dataSheet.getRange(2, 1, lr, lc).getValues();

  for (var j=0; j < data_rng.length; j++)
  {
    var getDate = new Date(data_rng[j][dateCol]);
    var getDate2 = new Date(data_rng[j][dateCol]);

    var getStart =new Date(data_rng[j][startCol]);
    var getEnd = new Date(data_rng[j][endCol]);

    getDate.setHours(getStart.getHours());
    getDate.setMinutes(getStart.getMinutes());

    getDate2.setHours(getEnd.getHours());
    getDate2.setMinutes(getEnd.getMinutes());

    var title = data_rng[j][titleCol];
    getCal.createEvent(title, getDate, getDate2);
  }
}
函数createEvent(日期、开始时间、结束时间、事件标题)
{
var-dateCol=0;
var-startCol=0;
var-endCol=0;
var-titleCol=0;
var ss=SpreadsheetApp.getActiveSpreadsheet();
var dataSheet=ss.getActiveSheet();
var lr=dataSheet.getLastRow()-1;
var lc=dataSheet.getLastColumn();
var rng=dataSheet.getRange(1,1,1,lc).getValues();
//这将匹配与html侧栏下拉列表中所选值对应的列。
对于(var i=0;i

我需要做些别的事情才能让它在插件上工作吗?如何使CalendarApp在加载项上工作?

您需要从加载项调试代码。您可以将数据写入日志电子表格,或者在出现错误时向自己发送电子邮件。您可以使用“发布”、“测试为加载项”选项,并从用于测试的菜单项触发该功能。您可以添加一个
Logger.log('ss:'+ss)语句,并查看代码是否正在获取活动的电子表格。我不知道是否可以将“getActiveSpreadsheet()”与附加组件一起使用。尝试按ID获取电子表格。谢谢Sandy,我已经确定它正在获取活动电子表格,是CalendarApp无法从加载项中运行,知道如何解决此问题吗?我不确定,但我知道我自己和其他人在
getEffectiveUser()
方法方面并没有太大成功。这正是我立即怀疑的。您需要从加载项调试代码。您可以将数据写入日志电子表格,或者在出现错误时向自己发送电子邮件。您可以使用“发布”、“测试为加载项”选项,并从用于测试的菜单项触发该功能。您可以添加一个
Logger.log('ss:'+ss)语句,并查看代码是否正在获取活动的电子表格。我不知道是否可以将“getActiveSpreadsheet()”与附加组件一起使用。尝试按ID获取电子表格。谢谢Sandy,我已经确定它正在获取活动电子表格,是CalendarApp无法从加载项中运行,知道如何解决此问题吗?我不确定,但我知道我自己和其他人在
getEffectiveUser()
方法方面并没有太大成功。这正是我立即怀疑的。