如何解决是否可以更新/替换特定幻灯片中的文本? 修改后的脚本:参考:
示例 - 假设我们总共有 5 张幻灯片,并且幻灯片 2、3、4 中有 {product_name}。但是我们只需要更新/替换第 3 号幻灯片中的文本 {product_name} 而不是第 2,4 号幻灯片。
ReplaceAllText 是可能的,但它会替换找到 {PRODUCT_NAME} 的所有幻灯片,但我们需要更新特定幻灯片的文本,仅假设只有第 3 张幻灯片。我已经探索了很多,但找不到实现相同目标的方法。
Snippet for ReplaceAllText (Works for all the slides replace,but we need the same for a specific slide & not for all): -
requests = [{
replaceAllText: {
containsText: {
text: '{{PRODUCT_NAME}}',matchCase: true
},replaceText: PRODUCT_NAME
}
}
谢谢!
解决方法
我相信你的目标如下。
- 您想替换 Google 幻灯片中第三张幻灯片中的
{{PRODUCT_NAME}}
文本。 - 您想使用带有 Google Apps 脚本的 Slides API 的 batchRequest 来实现这一点。
在这种情况下,我认为可以使用 pageObjectIds
的属性。
修改后的脚本:
function myFunction() {
const PRODUCT_NAME = "sample value"; // Please set your actual value.
const s = SlidesApp.getActivePresentation(); // or SlidesApp.openById("id")
const pageElementId = s.getSlides()[2].getObjectId(); // pageElementId of 3rd page.
console.log(pageElementId)
const resource = {
requests: [{
replaceAllText: {
pageObjectIds: [pageElementId],replaceText: PRODUCT_NAME,containsText: { matchCase: true,text: "{{PRODUCT_NAME}}" }
}
}]
};
Slides.Presentations.batchUpdate(resource,s.getId());
}
-
const pageElementId = s.getSlides()[2].getObjectId();
返回第 3 页的页面元素 ID。这用于pageObjectIds: [pageElementId]
。
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。