google-apps-script - AppsScript 搜索文本和更改颜色
问题描述
我很难找到这样的代码:在谷歌幻灯片演示中,搜索所有“[名称]”,然后将它们的颜色更改为红色。
我从以下三行开始,有什么帮助吗?
var currentslides = SlidesApp.getActivePresentation();
var slides = currentslides.getSlides();
var gettext = slides.getText();
谢谢!
解决方案
Presentation.getSlides()返回一个数组/幻灯片列表。幻灯片类没有getText()
方法。如果要获取幻灯片中的文本,可以使用Slide.getShapes()从Shape 类中获取。
示例代码:
function myFunction() {
var currentslides = SlidesApp.getActivePresentation();
var slides = currentslides.getSlides();
//Check each slides
slides.forEach(slide => {
Logger.log("**slide**");
//Get all shapes in the current slide
slide.getShapes().forEach(shape => {
//Get text in the current shape
var text = shape.getText();
Logger.log(text.asString());
//Search for the string "[Name]"
var str = text.find("\\[Name\\]");
str.forEach(s => {
//Change its foreground color to red "#rrggbb"
s.getTextStyle().setForegroundColor("#ff0000");
});
})
});
}
它能做什么?
- 使用Presentation.getSlides()获取当前演示文稿中的所有幻灯片
- 循环所有幻灯片,使用Slide.getShapes()获取当前幻灯片中可用的所有形状
- 循环所有形状,使用Shape.getText()获取每个形状的文本,这将返回一个TextRange 类
- 使用TextRange.find(pattern)
"[Name]"
在文本范围内查找字符串,这将返回与您的模式匹配的TextRange 类的数组/列表 - 循环所有文本范围,使用TextRange.getTextStyle()获取其文本样式,这将返回一个TextStyle Class。
"#ff0000"
使用TextStyle.setForegroundColor(foregroundColor)将其前景色更改为红色
输出:
前:
后:
附加参考:
推荐阅读
- android - 无法解析(Firebase)预期的用户表达式
- javascript - 我的 Ruby on Rails 应用程序中的几个视图需要我刷新页面才能正常工作,尤其是搜索和谷歌地图
- maple - 检查索引变量是否在某处分配了值
- asp.net-mvc - 引导日期选择器不再显示在 Microsoft Edge - MVC 应用程序中
- sql - CONVERT 显示错误的年份
- html - 如何动态地将选项添加到 Angular 组件中的选择元素?
- swift - SwiftUI 的 anchorPreference 折叠其视图的高度
- python - 为什么在编译 Tensorflow 模型时传递指标列表会导致 InvalidArgumentError?
- jquery - jQuery Autocomplete / Ajax 和匹配结果
- java - 将时间戳转换为 ISO 格式的日期字符串