【问题标题】:Format cell color based on the cell text content根据单元格文本内容格式化单元格颜色
【发布时间】:2019-09-30 23:28:43
【问题描述】:

我想完成这样的事情:

我有一种“关系”电子表格,我希望根据行来着色。

我为“类别”表上的每个类别手动选择唯一颜色或根据字符串内容生成唯一颜色,这两种方法都适用于我的用例。

【问题讨论】:

    标签: google-sheets google-sheets-formula gs-conditional-formatting


    【解决方案1】:

    不是最好的解决方案,但它有效

    function onEdit(e) {
      if(e){
        var ss = e.source.getActiveSheet();
        var range = e.source.getActiveRange();
    
        var r1 = range.getRow();
        var c1 = range.getColumn();
        var rowsCount = range.getNumRows();
    
        for(var i=0; i<rowsCount; i++){
    
          var row = ss.getRange(r1+i,1,1,ss.getMaxColumns());
          updateRow(row, ss);
        }
      }
    }
    
    function updateRow(row, ss){
      if (ss.getName() == "Entries") { // This is the sheet name
    
        var cell = row.getCell(1,1);
        var firstCellValue = cell.getValue();
    
        if(firstCellValue){
          cell.setBackgroundColor(stringToColor(firstCellValue));
        }
        else{
          cell.setBackgroundColor(null);
        }
      }
    }
    
    
    function stringToColor(str) {
      var hash = 0;
      for (var i = 0; i < str.length; i++) {
        hash = str.charCodeAt(i) + ((hash << 5) - hash);
      }
      var colour = '#';
      for (var i = 0; i < 3; i++) {
        var value = (hash >> (i * 8)) & 0xFF;
        colour += ('00' + value.toString(16)).substr(-2);
      }
      return colour;
    }
    

    基于this的回答

    【讨论】:

      【解决方案2】:

      在条件格式中选择要应用颜色的范围,选择颜色,
      选择 Text is exactly 并设置值:

      【讨论】:

      • 我不想为每个类别创建规则
      猜你喜欢
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 2018-12-04
      • 2016-02-05
      • 1970-01-01
      • 2015-01-05
      相关资源
      最近更新 更多