カレンダーから予定を読み込むスプレッドシートに Google スクリプトがあります。予定に費やす時間を計算します。しかし、カレンダー アイテムの更新には非常に時間がかかり、タイムアウト エラーが頻繁に発生します。カレンダーから予定を取得することは問題ではありません。スクリプトの下に記載されている、スプレッドシートの 10 個のタブごとにあるクエリは、速度を低下させていますか?
function updateUren()
{
var cal = CalendarApp.openByName("Uren");
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Uren");
//set first row
var details=[["title", "date", "start", "end", "duration"]]; // events[i].getDescription(),
var range=sheet.getRange(2,1,1,5);
range.setValues(details);
//gets the year from Boekjaar
var year = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Boekjaar").getRange(2,1,1,1).getValue();
var events = cal.getEvents(new Date("January 1, "+year), new Date("December 31, "+year));
if(events.length == 0)
{
Browser.msgBox('No events found for year: "' + year + '"');
}
for (var i=0;i<events.length;i++) {
//http://www.google.com/google-d-s/scripts/class_calendarevent.html
var startTime = events[i].getStartTime();
var endTime = events[i].getEndTime();
var durationHours = (endTime - startTime) / (1000*60*60);
var details=[[events[i].getTitle(), startTime, startTime, endTime, durationHours]]; // events[i].getDescription(),
var row=i+3;
range=sheet.getRange(row,1,1,5);
range.setValues(details);
}
var foo = "foo";
}
ここに示すクエリを実行している 10 個のタブがあります。特定の期間の予定期間をフィルタリングします
=QUERY (Uren!A:E, "SELECT B, SUM(E) WHERE A CONTAINS 'SomeKeyWord' AND B>=DATETIME '2012-6-18 00:00:00'
AND B<DATETIME '2012-7-16 00:00:00' GROUP BY B PIVOT A'")
それらは高価で、 updateUren() 関数の呼び出し中に処理が遅くなりますか?
誰も答えを知っていますか?