Отправной точкой ОП был код, разработанный @Tanaike для Как получить вложение в событие календаря Google с помощью скрипта Apps .Результирующий код, показанный здесь, является расширением этого кода / логики для включения:
-пропускание диапазона идентификатора события на листе,
-счет числа (если есть) идентификаторов файла, прикрепленных к этому событию,
- извлечение каждого из файловых идентификаторов,
- обновление листа с указанием количества файлов и соответствующих идентификаторов файлов.
Возможно присоединить до 25 вложений к событию.Этот код является динамическим;он сообщит и отобразит столько вложений, сколько существует для любого заданного идентификатора события.
Примечание: идентификатор события представляет собой поле id
, а НЕ iCalUID
.
Кроме того, код полагается на включение Calendar API
в разделе «Расширенные службы Google» (Меню редактора сценариев: Ресурсы> Расширенные службы Google), а также в «API Календаря Google» на «Панели инструментов API Google Cloud Platform».
Я оставил несколько операторов Logger в коде, если ОП пожелает / нужно идентифицировать ключевые значения на различных этапах функции.
function so53877465() {
// setup the spreadsheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("testsheet");
// get the number of EventIDs in Column A
var Avals = ss.getRange("A1:A").getValues();
var Alast = Avals.filter(String).length;
//Logger.log("DEBUG: The last row on A = " + Alast);// DEBUG
//Loop though each event ID
for (var r = 1; r < Alast; r++) {
// Logger.log("DEBUG: Aval row " + r + " = " + Avals[r][0]);//DEBUG
// substitute your own Calendar ID
var myCalendarID = "<<inset your Calendar ID>>";
// get the eventID
var eventId = Avals[r][0];
// get the Even info
var response = Calendar.Events.get(myCalendarID, eventId);
// just focus on the attachments
var events = response.attachments;
// setup some variables
var filecount = 0; //count the number of files in an event
var filearray = []; // create an array for the file could and fileIDs
// ccount the number of attachments for this eventID
for (key in events) {
filecount++;
}
//Logger.log("DEBUG: For row = " + r + ", the file count is " + filecount);//DEBUG
// push the filecount onto the empty array
filearray.push(filecount);
// loop through the fileIDs
for (i = 0; i < filecount; i++) {
// Logger.log("DEBUG: i: " + i);// DEBUG
// get the attachments
var event = events[i];
//get the file iD
var myfileid = event.fileId;
// Logger.log("DEBUG: The file id: " + myfileid);//DEBUG
// push the fileid onto the array
filearray.push(myfileid);
}
// adjust the array for 2d
var values = [
filearray
];
// define the target range
var range = sheet.getRange((r + 1), 2, 1, (filecount + 1)); //(row, column, numRows, numColumns)
// Logger.log("DEBUG: the target range is " + range.getA1Notation());//DEBUG
// update the target range with the array values.
range.setValues(values);
}
}
ДО1026 *
ПОСЛЕ