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

Google Apps Script:getFontColorObject无法返回正确单元格字体颜色十六进制值

解决Google Sheets自定义函数返回字体颜色值异常的问题

你的自定义函数始终返回#ff000000,核心原因是:getFontColorObject().asRgbColor().asHexString()返回的是包含alpha通道的8位十六进制颜色值(格式为#RRGGBBAA),其中ff代表完全不透明的alpha值。而你预期的是不带alpha通道的6位十六进制(#RRGGBB),所以黑色会被返回为#ff000000,蓝色则是#ff0000ff。

两种修复方案:

方案一:使用getFontColor()直接获取6位颜色值

这个方法是Google Sheets API专门用于返回字体颜色的6位十六进制字符串,代码更简洁且符合需求:

function fontColor(a) {
  var b = a || "A1:A1";
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange(b);
  
  return range.getFontColor();
}

方案二:截取8位颜色值的后6位保留RGB部分

如果坚持使用ColorObject的方式,可以通过字符串截取去掉alpha通道部分:

function fontColor(a) {
  var b = a || "A1:A1";
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange(b);
  
  var fullHex = range.getFontColorObject().asRgbColor().asHexString();
  return "#" + fullHex.slice(3);
}

测试时,无论单元格字体是黑色还是蓝色,修改后的函数都会返回你预期的#000000或#0000ff。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:10:59