(Отредактировано описание проблемы)
То, что я пытаюсь сделать: Использование этой электронной таблицы для сбора URL-адресов построчно и вставки каждого изображения в новый слайд Google Slide с именем Output Document. Я использую функцию addImagetoSlide, которая принимает imageUrl, номер слайда и имя документа для добавления изображений к каждому элементу слайда.
Где я застрял Когда я пытаюсь использовать dataRange (массив, содержащий мой элемент электронной таблицы, он хорошо работает за пределами while l oop, но внутри while l oop он не читает элемент [0] [2], говоря, что «Невозможно прочитать свойство 2 строчки .. Не понимаю, почему снаружи работает а внутри пока нет l oop
function collateImages(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var targetDocument = SlidesApp.create("Output Document"); // Target file for the collation
var dataRange = sheet.getDataRange(); // Range of the entire database
Logger.log(dataRange.getValues()[0][2]);
Logger.log(dataRange.getValues()[1][2]);
Logger.log(dataRange.getValues()[2][2]);
Logger.log(dataRange.getValues()[3][2]);
var i = 0; // Iterator
while (i< dataRange.getLastRow()){
i = i + 1;
Logger.log(dataRange.getValues()[i][2]);
addImageToSlide(doubtRange.getValues()[i][2],i,targetDocument);
}
}
// Function to get file id from url
function getIdFromUrl(url) { return url.match(/[-\w]{25,}/); }
//Add Image with URl "ImageUrl" on slide number "index on a presentation named "deck"
function addImageToSlide(imageUrl, index,deck) {
var slide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
var imagefile = DriveApp.getFileById(getIdFromUrl(imageUrl));
var imageblob = imagefile.getBlob();
var image = slide.insertImage(imageblob);
}