根据单元格文本内容格式化单元格颜色

Format cell color based on the cell text content

我想完成这样的事情:

我有一种 "Relational" 电子表格,我希望根据颜色对行进行着色。

我手动为 "Categories" Sheet 上的每个类别选择一种独特的颜色,或者根据字符串内容生成一种独特的颜色,这两种方法都适用于我的用例。

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

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回答

在条件格式中 select 您要应用颜色的范围,select 颜色,
选择 Text is exactly 和设定值: