You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Apps Script提取Google幻灯片文本中的数字并按值着色?

解决方案

你需要用正则表达式匹配文本中所有数字(包括小数),转成可运算的数值后判断范围,再设置对应颜色。以下是完整修正后的代码:

var slides = Presentation.getSlides();
// 遍历每一页幻灯片
slides.forEach(slide => {
  slide.getShapes().forEach(shape => {
    var text = shape.getText();
    Logger.log(text.asString());

    // 匹配所有数字(支持整数、小数、正负值)
    var allNumbers = text.find(/[-+]?\d*\.?\d+/g);
    
    // 逐个处理匹配到的数字文本块
    allNumbers.forEach(numText => {
      // 将文本转为可运算的数值
      var num = parseFloat(numText.asString());
      
      // 根据数值范围设置对应颜色
      if (num === 10) {
        numText.getTextStyle().setForegroundColor("#FFD700");
      } else if (num >= 9 && num <= 9.75) {
        numText.getTextStyle().setForegroundColor("#00FF00");
      } else if (num >= 0 && num <= 3.75) {
        numText.getTextStyle().setForegroundColor("#FF0000");
      }
    });
  });
});

关键细节说明:

  • 正则表达式 /[-+]?\d*\.?\d+/g:能匹配所有常见数字格式,包括正负数、整数和带小数点的小数。
  • parseFloat():把匹配到的文本数字转换成浮点数值,这样就能参与大小比较运算。
  • 合并逻辑:不再单独定义三个变量存储不同范围的数字,直接遍历所有数字做判断,简化代码结构。

补充提示:

  • 原代码遗漏了幻灯片的遍历循环,补上后才能处理所有页面的形状。
  • 如果数字前后带有单位(比如"9.5分"),需要调整正则或额外处理,确保只提取纯数字部分再转数值。

内容的提问来源于stack exchange,提问作者Dingus Man

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 07:55:06