如何仅使用谷歌脚本为我的谷歌工作表创建条件格式?

时间:2020-12-19 04:26:58

标签: function google-apps-script google-sheets conditional-formatting

我想在我的大学学习如何使用谷歌脚本,但我不太了解如何使用条件格式?我目前正在尝试执行以下操作:

“查看谁有资格获得免费学位奖学金的脚本!在此之前,请返回工作表并在电子表格上创建一个标题为“资格”的新列,然后您的脚本应该确定学生出勤率超过 80%,收入低于 30,000。在相关列的单元格中打印,说明该学生是否符合条件。"

所以我有 2 条数据需要条件格式,但只使用链接到谷歌表的谷歌脚本。我不是要求为我写出答案,但我希望任何人都可以提供任何帮助,因为我不知道从哪里开始?

如果有人能告诉我具体的规则或我需要什么代码,我将不胜感激!

1 个答案:

答案 0 :(得分:1)

这是一个你可以做的事情的例子。我使用一些数据生成器来生成随机数。然后我为每一行对它们求和,然后将它们归一化为具有最大总和的行。最后一个循环根据 colorA 和计算出的 idx 设置背景颜色。黄色是最大总和,绿色是次高范围,红色都低于最大总和的 80%。

颜色如下:

function idWinners() {
  const colorA=['red','red','red','red','red','red','red','red','green','green','yellow'];
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheetByName('Sheet34');
  const shsr=2;
  const rg=sh.getRange(shsr,1,sh.getLastRow()-shsr+1,sh.getLastColumn());
  const vs=rg.getValues();
  let pA=[];
  let max=0;
  let maxro=0;
  vs.forEach((r,i)=>{
    let sum=0;
    r.forEach((c,j)=>{
      sum+=c;
    });
    pA.push({total:sum,row:i+shsr})
    if(sum>max) {
      max=sum;
      maxro=i+shsr;
    }
  });
  pA.forEach((r,i)=>{
    r['nv']=r.total/max;//normalize all values to the max value
    r['idx']=Math.round(r.nv*10);//calculate background color index into color A
    r['color']=colorA[r.idx];
    sh.getRange(i+shsr,1,1,sh.getLastColumn()).setBackground(r.color);//set background color array for each row
  });
  const end="is near";
  }

所以考虑一下您需要对数据执行什么样的计算以及背景颜色如何与背景颜色相关联。我在大约 20 分钟内完成了这段代码。因此,一旦您熟悉了脚本编写,您就可以在短时间内完成一些非常有趣的事情。