首页 > 解决方案 > Google App脚本根据该单元格的字体颜色清除单元格值

问题描述

我有一个谷歌表,上面有很多值,是否可以编写一个小函数来清除所有具有红色字体颜色的单元格中的所有值。

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


解释:

  • 您需要做的第一件事是获取数据范围的字体颜色。获取数据范围的一种直接方法是使用getDataRange()。要获取数据范围的字体颜色,您需要使用getFontColors()。后者给出了单元格的十六进制字体颜色代码。谷歌表格中的红色(颜色选择器中的第二行第二列ui)是#ff0000.

  • 现在您有了颜色数组,您需要遍历每一行和每个元素并检查颜色是否等于#ff0000. 如果是,则使用clearContent()清除该单元格的内容。

解决方案:

选择工作表的名称而不是Sheet1

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();  
  const sh = ss.getSheetByName('Sheet1');  
  const colors = sh.getDataRange().getFontColors();
  colors.forEach( (r,i) => {     
    r.forEach((c,j)=>{
    if (c=='#ff0000'){
    sh.getRange(i+1,j+1).clearContent();}
  })})
}

限制:

虽然这种方法对于大量数据非常有效,但在两个forEach循环中getRange迭代执行并不是一个好习惯。但我希望它对你有用。


推荐阅读