我无法使它正常工作,我迷路了,已经搜寻了答案,却看不到是什么原因导致失败,我正在从电子表格中提取数据并尝试将其作为事件添加到Google日历中-冻结在getcal()event上,说找不到方法createalldayevent(string,string)-line71
我已经修改了此代码,但仍然...
\\function to get required information from sheets
and set as script properties to use in later functions//
function getsheet(getsheet){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("Calendar Data");
var sheet2 = ss.getSheetByName("call form");
var sheet3 = ss.getSheetByName("Job Summary Sheet");
var getval = sheet2.getRange("A1:A").getValues();
var getlast = getval.filter(String).length;
var finval = sheet2.getRange(getlast, 1).getValues().toString();
var finval2 = sheet1.getRange(getlast, 2).getValues().toString();
var finval3 = sheet1.getRange(getlast, 5).getValues().toString();
var finval4 = sheet3.getRange(getlast, 6).getValues().toString();
var finval5 = sheet3.getRange(getlast, 12).getValues().toString();
var title = finval + '-' + finval4 ;
var startTime = finval3;
var endTime = finval3;
var location = finval2;
var description = finval5;
PropertiesService.getScriptProperties().setProperty('title', title);
PropertiesService.getScriptProperties().setProperty('startTime', startTime);
PropertiesService.getScriptProperties().setProperty('endTime', endTime);
PropertiesService.getScriptProperties().setProperty('location', location);
PropertiesService.getScriptProperties().setProperty('description', description);
Logger.log(title);
Logger.log(startTime);
Logger.log(endTime);
Logger.log(location);
Logger.log(startTime);
Logger.log(description);
}
\\\\function getsheet() works correctly-
--gets last row of each required sheet and sets information as script properties////
function getcal2(){
getsheet();
var title = PropertiesService.getScriptProperties().getProperty('title');
var Date = PropertiesService.getScriptProperties().getProperty('startTime');
var endTime = PropertiesService.getScriptProperties().getProperty('endTime');
var location = PropertiesService.getScriptProperties().getProperty('location');
var description = PropertiesService.getScriptProperties().getProperty('description');
////freezes at event2/////
var event = CalendarApp.getCalendarById('[email protected]');
var event2 =event.createAllDayEvent(title,Date
);
Logger.log('Event ID: ' + event.getId());
Logger.log(title);
Logger.log(startTime);
Logger.log(endTime);
Logger.log(location);
Logger.log(startTime);
Logger.log(description);
}
\\\fails at event2-cannot find method-i am new to this
但是您的帮助确实给了我很多理解...我很感激!////
在第3行,我们在调用方法createAllDayEvent()时,变量title
和startTime
有undefined
,只是移动(其中定义行3 var event
)行后var description = finval5
或调用函数使用这些参数getsheet()。
编辑:
您正在使用方法createAllDayEvent(title,date)接收的两个参数是:
title
需要是一个字符串,因此请确保您从电子表格中获取的值是一个字符串。date
在需要是一个Date对象,以便确保在电子表格中的值是一个有效的日期格式,如果你编辑,你必须看到日历,细胞如果不进入菜单格式>号码>日期谷歌表格存储数据取决于单元格的值,该值可以是类型的Number
,Boolean
,Date
,或String
(空单元将返回一个空字符串)。当这些值被脚本使用时,Apps脚本会将它们视为JavaScript中适当的数据类型。
编辑2:
正如我上面提到的,方法createAllDayEvent(title,date)在第二个参数中接收Date对象,现在您正在使用PropertiesService存储日期值,但是此服务将值存储为Strings,因此现在使用日期之前要创建事件,您需要将其转换为Date对象,如下所示:
var date = PropertiesService.getScriptProperties().getProperty('startTime');
var dateObj = new Date(date); // create the Date Object
var event = CalendarApp.getCalendarById('[email protected]');
var event2 = event.createAllDayEvent(title, dateObj);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句