我对AppScript还是很陌生,所以如果这太容易了并且很无望,我深表歉意。我搜索了一堆,但是解决方案的格式略有不同,我不确定该如何利用。
该脚本可以将我的工作表信息导入到日历中,但是我希望第一列成为公式列,并且我不知道如何在使用LastRow时忽略它。
我从在线教程中获得了代码,但是如果大家都对如何做得更好/有不同的建议,请告诉我。谢谢!
我在这一行中尝试了一些不同的迭代:
var count = spreadsheet.getRange("B2:H"+lr+"").getValues();
但是我这是反复试验,只有错误是结果。
function CreateEvent() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarId = spreadsheet.getRange('K1').getValue();
var eventCal = CalendarApp.getCalendarById(calendarId);
var lr = spreadsheet.getLastRow();
Logger.log(lr);
var count = spreadsheet.getRange("B2:H"+lr+"").getValues();
for (x=0; x<count.length; x++) {
var shift = count[x];
var summary = shift[0];
var guests = shift[2];
var description = shift[3];
var location = shift[4];
var startTime = shift[5];
var endTime = shift[6];
var event = {
'location': location,
'description': description,
'guests':guests +',',
}
eventCal.createEvent(summary, startTime, endTime, event)
}
}
答案 0 :(得分:0)
您的方法是正确的,创建事件只需采取一个步骤。 startTime
和endTime
参数必须是日期类型,不能是字符串。为此,您需要添加以下更改:
var startTime = new Date(shift[5]);
var endTime = new Date(shift[6]);
使用此代码,字符串将转换为日期,并且createEvent
方法将起作用。如果我对自己的解释不够充分,请进一步澄清。
作为旁注,我想在下面一行中写一点小东西:
var count = spreadsheet.getRange("B2:H"+lr+"").getValues();
最后一个""
根本不需要,可能会引起混乱,但确实可以。为了清楚起见,我建议仅使用:
var count = spreadsheet.getRange("B2:H"+lr).getValues();