在 Google Apps 脚本中获取幻灯片的标题
Getting title of slide in Google Apps Script
我正在尝试编写一个 google 应用程序脚本,该脚本获取每张幻灯片的幻灯片标题(因为它们在母版幻灯片中)并将它们放入格式良好的 table 内容中在幻灯片 2 上。
不一定非得用apps脚本来完成,但这是我能想到的最好的方法。
function readPageElementIds(presentationId, pageId) {
var response = Slides.Presentations.get(
presentationId);
Logger.log(response.slides)
for (var i = 0; i < response.slides.length; i++) {
var slide = response.slides[i].pageElements;
for (var j = 0; j < slide.length; j++) {
if (slide[j].shape) {
var texts = slide[j].shape.text.textElements;
for (var k = 0; k < texts.length; k++) {
if (texts[k].autoText) {
Logger.log(texts[k].autoText.content);
}
}
}
}
}
}
是的,有很多 for 循环,我不知道该怎么做。
非常接近。您缺少的东西:
您正在迭代所有形状,而不仅仅是标题。为此,过滤 shape.placeholder.type
属性。您只想查看具有 TITLE
和 CENTERED_TITLE
占位符类型的形状。
autoText
文本元素比较少见。您的大部分文本将在 TextRun
个文本元素
中
此代码有效:
function readPageElementIds(presentationId, pageId) {
var response = Slides.Presentations.get(
presentationId);
Logger.log(response.slides)
for (var i = 0; i < response.slides.length; i++) {
var slide = response.slides[i].pageElements;
for (var j = 0; j < slide.length; j++) {
if (slide[j].shape && slide[j].shape.placeholder
&& (slide[j].shape.placeholder.type == 'TITLE'
|| slide[j].shape.placeholder.type == 'CENTERED_TITLE')) {
var texts = slide[j].shape.text.textElements;
var shapeText = "";
for (var k = 0; k < texts.length; k++) {
if (texts[k].autoText) {
shapeText += texts[k].autoText.content;
}
if (texts[k].textRun) {
shapeText += texts[k].textRun.content;
}
}
Logger.log(shapeText);
}
}
}
}
我正在尝试编写一个 google 应用程序脚本,该脚本获取每张幻灯片的幻灯片标题(因为它们在母版幻灯片中)并将它们放入格式良好的 table 内容中在幻灯片 2 上。
不一定非得用apps脚本来完成,但这是我能想到的最好的方法。
function readPageElementIds(presentationId, pageId) {
var response = Slides.Presentations.get(
presentationId);
Logger.log(response.slides)
for (var i = 0; i < response.slides.length; i++) {
var slide = response.slides[i].pageElements;
for (var j = 0; j < slide.length; j++) {
if (slide[j].shape) {
var texts = slide[j].shape.text.textElements;
for (var k = 0; k < texts.length; k++) {
if (texts[k].autoText) {
Logger.log(texts[k].autoText.content);
}
}
}
}
}
}
是的,有很多 for 循环,我不知道该怎么做。
非常接近。您缺少的东西:
您正在迭代所有形状,而不仅仅是标题。为此,过滤
shape.placeholder.type
属性。您只想查看具有TITLE
和CENTERED_TITLE
占位符类型的形状。autoText
文本元素比较少见。您的大部分文本将在TextRun
个文本元素 中
此代码有效:
function readPageElementIds(presentationId, pageId) {
var response = Slides.Presentations.get(
presentationId);
Logger.log(response.slides)
for (var i = 0; i < response.slides.length; i++) {
var slide = response.slides[i].pageElements;
for (var j = 0; j < slide.length; j++) {
if (slide[j].shape && slide[j].shape.placeholder
&& (slide[j].shape.placeholder.type == 'TITLE'
|| slide[j].shape.placeholder.type == 'CENTERED_TITLE')) {
var texts = slide[j].shape.text.textElements;
var shapeText = "";
for (var k = 0; k < texts.length; k++) {
if (texts[k].autoText) {
shapeText += texts[k].autoText.content;
}
if (texts[k].textRun) {
shapeText += texts[k].textRun.content;
}
}
Logger.log(shapeText);
}
}
}
}