问题描述
我有一个电子表格,该电子表格的一列包含图像链接(这些链接由用户以表格形式输入)。可以有多个图像,这意味着链接将在每一行中显示为逗号分隔的值。
我想分别提取每个链接并执行操作(将内容粘贴到google脚本中的新幻灯片中-我已经具有工作功能)。
(例如,如果我有一行包含条目[Link A,Link B,Link C],第二行包含条目[Link D,Link E],则我想首先在第1行进行迭代,请阅读Link A ,然后提取该图像,读取链接B,提取该图像,再读取链接C提取该图像,感觉到行已结束,跳到下一行并执行相同的操作,直到读取了所有行)
但是我无法一一阅读链接。我进行了逻辑处理(逐行读取行),并使用split
方法逐一读取每个逗号之间的值,但是仍然无法给出答案。
这是我的代码:
function collateImages(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
//var targetDocument = SlidesApp.create("Output File"); // Target file for the collation
var targetDocument = SlidesApp.openByUrl("https://docs.google.com/presentation/d/1VajsMSozYtDdIRY7cJfc8GuU0Gr5TmV438cTnf9VgtU/edit?usp=sharing"); // Target File
var datarange = sheet.getDatarange(); // Range of the entire database
var finalArray = []; // creates an empty array to log each of the URLs one-by-one
for (var i = 1; i < datarange.getLastRow(); i++){ // Iterate by each row
for (var j = 0; j < datarange.getValues()[i][2].split(",").length; j++){
finalArray.push(datarange.getValues()[i][2].split("'")[j]);
//Logger.log(datarange.getValues()[i][2].split(",").length);
//addImagetoSlide(datarange.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,500,400);
var slide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)