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

如何在C#中从RGB值获取颜色名称、强调色及明暗比例?

从RGB值获取Excel风格颜色描述字符串的方法

Excel里的颜色描述(比如“红色,强调文字颜色2,淡色40%”)是基于主题色体系的,不是直接通过RGB值映射——同一主题色的深浅变体对应不同RGB,不同主题下同一描述的RGB也不一样。要实现这个需求,有两种可行方案:

方案一:预存默认主题的RGB-描述映射表

Office默认主题的所有主题色及其深浅变体,都有固定的RGB值和对应描述。你可以先把这些对应关系整理成一个映射表:

  • 手动从Excel颜色选择器里提取每一种主题色变体的RGB值和显示的描述文字,或者通过工具批量导出
  • 当拿到目标RGB值时,直接在映射表里匹配,返回对应的描述字符串

举个例子:

  • RGB(255, 199, 206) 对应 红色,强调文字颜色2,淡色40%
  • RGB(191, 191, 191) 对应 灰色-50%,背景色2

这种方法适合不需要适配多主题的场景,直接用默认规则就行。

方案二:通过Office API直接查询

如果是在Office插件、VBA或者Office Scripts开发场景下,可以直接调用Office的API获取颜色的主题属性,再组合成描述:

  • 用VBA的话,可以通过单元格的ThemeColor和TintAndShade属性来获取主题色编号和深浅值,再转换成对应的文字描述。示例代码:
    Sub GetColorDesc()
        Dim targetRng As Range
        Set targetRng = Selection
        
        ' 获取主题色编号和深浅值
        Dim themeColor As XlThemeColor
        themeColor = targetRng.Interior.ThemeColor
        Dim tintVal As Double
        tintVal = targetRng.Interior.TintAndShade
        
        ' 主题色编号转名称
        Dim colorBase As String
        Select Case themeColor
            Case xlThemeColorDark1: colorBase = "黑色,文字1"
            Case xlThemeColorLight1: colorBase = "白色,背景1"
            Case xlThemeColorAccent2: colorBase = "红色,强调文字颜色2"
            ' 其他主题色的对应关系可以自行补充完整
        End Select
        
        ' 深浅值转描述
        Dim shadeText As String
        If tintVal > 0 Then
            shadeText = ",淡色" & CInt(tintVal * 100) & "%"
        ElseIf tintVal < 0 Then
            shadeText = ",深色" & CInt(Abs(tintVal) * 100) & "%"
        End If
        
        ' 输出结果
        MsgBox colorBase & shadeText
    End Sub
    
  • Office Scripts里也有类似的属性:range.format.fill.themeColor和range.format.fill.tintAndShade,逻辑和VBA一致。

注意点

  • 只有属于Office主题色变体的RGB值,才能对应到这类结构化描述;如果是完全自定义的RGB颜色(不在主题变体里),Excel只会直接显示RGB数值,没有这类文字描述。
  • 如果要适配不同的Office主题,得结合当前文档的主题信息来查询,不能只用默认主题的映射表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:34:53