データをさらに処理するために、GoogleスプレッドシートにGoogleカレンダーエントリの記録を保持しようとしています。私は他のソースから借りた次のコードを持っています:
function importEvents(){
var startOfDay = new Date();
startOfDay.setUTCHours(0);
startOfDay.setMinutes(0);
startOfDay.setSeconds(0);
startOfDay.setMilliseconds(0);
var endOfDay = new Date(startOfDay.getTime() + 24 * 60 * 60 * 1000);
var Calendar = CalendarApp.getCalendarById("[calendarIDhere]");
var events = Calendar.getEvents(startOfDay, endOfDay)
var events_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ImportedEvents");
var lr = events_sheet.getLastRow();
var eventarray = new Array();
var i = 0; // edited
for (i = 0; i < events.length; i++) {
line = new Array();
line.push(events[i].getTitle());
line.push(events[i].getDescription());
line.push(events[i].getStartTime());
line.push(events[i].getEndTime());
eventarray.push(line);
}
events_sheet.getRange('A1:D' + (i)).setValues(eventarray);
var l = events_sheet.getLastRow();
var m = events_sheet.getMaxRows();
events_sheet.deleteRows(l+1,m-l);
}
何らかの理由で、1日のエントリをインポートするたびに、いくつかの空の行がImportedEventsシートに追加されます。これが、シートの最後にある空の行を削除する理由です。
私がやりたいのは、このスクリプトで、ImportedEventsシートの既存のエントリの下に新しいインポートされたエントリを追加することです。プログラミングスキルが限られているため、これを理解することはできません(ここでも、上記のコードは、他の場所で提供されているソリューションを実装した結果です)。
どんな助けでも大歓迎です!
編集: Lotharの提案に基づいて、私は何か他のものを試しました:
events_sheet.getRange("A"+(lr+1)+":D"+(lr+i)).setValues(eventarray);
そしてそれはうまくいきました!また、深く掘り下げるインセンティブに-1を投票した人には非常に特別な感謝を捧げます。
乾杯!