我想將 Google Slide 中的占位符替換為從 Google Sheet 中的 Image Url 獲取的圖片。
我有一個腳本可以替換文本占位符,并使用 Google Sheet 中每一行的文本資訊創建一個 Google 幻燈片。
我想添加正確的代碼,以便腳本還獲取來自 Google Sheet 的 URL 影像鏈接,并將 Google Slide 中的影像占位符替換為來自 Sheet 的嵌入 URL 影像,每一行代表一張幻燈片。
這是我下面的代碼
values.forEach(function(page){
if(page[0]){
var landingPage = page[0];
var sessions = page[1];
var newSessions = page[2];
var pagesPer = page[5];
var goalRate = page[7];
var goalValue = page[9];
defaultSlides = slides.getSlides();
defaultSlide = defaultSlides[1];
newSlide = defaultSlide;
newSlide2 = defaultSlides[2];
var shapes = (newSlide.getShapes());
shapes.forEach(function(shape){
shape.getText().replaceAllText('{{landing page}}',landingPage);
shape.getText().replaceAllText('{{sessions}}',sessions);
shape.getText().replaceAllText('{{new sessions}}',newSessions);
shape.getText().replaceAllText('{{pages per session}}',pagesPer);
shape.getText().replaceAllText('{{goal rate}}',goalRate);
shape.getText().replaceAllText('{{goal value}}',goalValue);
});
}
在代碼中,“page”代表 Google Sheet 中的一列。
我想在作業表中為影像 URL 創建一個列,并在腳本中這樣撰寫,例如:
var imageUrl = page[10],
而不是replaceAllText,我想用谷歌表格中的圖片網址替換谷歌幻燈片占位符。
謝謝您的幫助
uj5u.com熱心網友回復:
我相信你的目標如下。
- 對于谷歌幻燈片的第二頁,你想用文本替換
"{{landing page}}", "{{sessions}}", "{{new sessions}}", "{{pages per session}}", "{{goal rate}}", "{{goal value}}"文本。 - 您想用從 檢索到的影像替換文本
var imageUrl = page[10]。
根據您的問題,我無法確認替換影像的文本。所以在這個答案中,作為一個示例占位符,{{image}}被替換為來自var imageUrl = page[10].
在這種情況下,如何進行以下修改?
修改后的腳本:
在此腳本中,{{image}}替換為 URL 的影像。所以請放到{{image}}幻燈片的第二頁。
var values = ###; // Please set your values.
var slides = SlidesApp.getActivePresentation(); // or SlidesApp.openById("###");
var defaultSlides = slides.getSlides();
values.forEach(function (page) {
if (page[0]) {
var landingPage = page[0];
var sessions = page[1];
var newSessions = page[2];
var pagesPer = page[5];
var goalRate = page[7];
var goalValue = page[9];
var imageUrl = page[10];
var newSlide = defaultSlides[1];
var texts = [
["{{landing page}}", landingPage],
["{{sessions}}", sessions],
["{{new sessions}}", newSessions],
["{{pages per session}}", pagesPer],
["{{goal rate}}", goalRate],
["{{goal value}}", goalValue]
];
texts.forEach(t => newSlide.replaceAllText(...t));
newSlide.getShapes().forEach(s => {
if (s.getText().asString().trim() == "{{image}}") s.replaceWithImage(imageUrl);
});
}
});
- 運行此腳本時,在幻燈片的第 2 頁中,將 的文本
"{{landing page}}", "{{sessions}}", "{{new sessions}}", "{{pages per session}}", "{{goal rate}}", "{{goal value}}"替換為landingPage, sessions, newSessions, pagesPer, goalRate, goalValue. 并且,{{image}}被替換為來自var imageUrl = page[10].
筆記:
In the loop of your script, the 1st element of
valuesis used to 2nd page of Google Slides. This is from your script. Please be careful this.In order to replace a text with a text, I used
textsarray and forEach.In order to replace a text with an image, I used
replaceWithImageby searching the texts of{{image}}.If 2nd page of Slides has no placeholders and
{{image}}is not set and those placeholders are not set, your goal cannot be achieved. Please be careful this.
Reference:
- replaceWithImage(imageUrl)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/457233.html
上一篇:根據匹配內容合并陣列的內容
