如何使用Google Apps脚本将电子表格的最后一行导入我的日历?

时间:2015-12-04 20:35:06

标签: google-apps-script google-calendar-api

我已经能够创建一个脚本来将电子表格(交付计划)导入日历。它工作得很好,但我不断在计划中添加新的交付。当我将它导入日历时,它每次都会导入所有内容。有没有办法只导入最后一行导入而不是整个电子表格?

这是我正在使用的脚本......

var DELIVERY_IMPORTED = "DELIVERY_IMPORTED";
var ss = SpreadsheetApp.getActiveSpreadsheet();

function onOpen() {
var menuEntries = [{name: "Import Events in Calendar", functionName: "importCalendar"}];
ss.addMenu("Calendar", menuEntries);
}

function importCalendar() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;  // First row of data to process
var numRows = 5;   // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, 5)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var title = row[1]; // Name
var location = row[2]; 
var startDate = row[3]; // Start Date
var description = row[4]; 
var cal = CalendarApp.getCalendarsByName('Calendar Name')[0];
var advancedArgs = {description: description, location: location};
cal.createAllDayEvent(title, new Date(startDate), advancedArgs);
  SpreadsheetApp.flush();  
}
}

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

如果您每次只有一个新的石灰,您可以使用Sheet.getLastRow()获取包含内容的最后一行的索引。

否则,您可以使用“属性”服务存储上次导入的行,并从那里开始。