格式参数 选项是必需的参数,它没有默认值。允许的类型值及其相关参数是:

    criteria 参数用于设置单元格数据的条件格式运算符。它没有默认值,同常与 {"type":"cell"} 一起使用,支持的参数为:

    可以使用上面表格第一列中的 Office Excel 文本描述字符,或者符号表示方法(betweennot between 没有符号表示法)作为条件格式运算符。下面的相关部分显示了其他条件格式类型的特定标准。

    value:该值通常与 criteria 参数一起使用,可以用确定的值作为设置单元格条件格式的条件参数:

    1. f.SetConditionalFormat("Sheet1", "D1:D10", fmt.Sprintf(`[
    2. {
    3. "type": "cell",
    4. "criteria": ">",
    5. "format": %d,
    6. "value": "6"
    7. }]`, format))

    value 属性也可以是单元格引用:

    1. f.SetConditionalFormat("Sheet1", "D1:D10", fmt.Sprintf(`[
    2. {
    3. "type": "cell",
    4. "criteria": ">",
    5. "format": %d,
    6. "value": "$C$1"
    7. }]`, format))

    类型:format - format 参数用于指定满足条件格式标准时将应用于单元格的格式。该参数可以通过 NewConditionalStyle() 方法来创建:

    1. format, err = f.NewConditionalStyle(`{
    2. "font":
    3. {
    4. "color": "#9A0511"
    5. },
    6. "fill":
    7. {
    8. "type": "pattern",
    9. "color": ["#FEC7CE"],
    10. "pattern": 1
    11. }
    12. }`)
    13. if err != nil {
    14. fmt.Println(err)
    15. }
    16. f.SetConditionalFormat("Sheet1", "A1:A10", fmt.Sprintf(`[
    17. {
    18. "type": "cell",
    19. "criteria": ">",
    20. "format": %d,
    21. "value": "6"
    22. }]`, format))

    注意:在 Office Excel 中,条件格式叠加在现有单元格格式上,并非所有单元格格式属性都可以修改。无法在条件格式中修改的属性包括:字体名称、字体大小、上标和下标、对角边框、所有对齐属性和所有保护属性。

    Office Excel 中内置了一些与条件格式一起使用的默认样式。可以使用以下 excelize 设置实现这些样式效果:

    1. // 浅红填充色深色文本代表较差
    2. format1, err = f.NewConditionalStyle(`{
    3. "font":
    4. {
    5. "color": "#9A0511"
    6. },
    7. "fill":
    8. {
    9. "type": "pattern",
    10. "color": ["#FEC7CE"],
    11. "pattern": 1
    12. }
    13. }`)
    14. // 黄填充色深黄色文本代表一般
    15. format2, err = f.NewConditionalStyle(`{
    16. {
    17. "color": "#9B5713"
    18. },
    19. "fill":
    20. {
    21. "type": "pattern",
    22. "color": ["#FEEAA0"],
    23. "pattern": 1
    24. }
    25. }`)
    26. // 绿填充色深绿色文本代表较好
    27. format3, err = f.NewConditionalStyle(`{
    28. "font":
    29. {
    30. "color": "#09600B"
    31. },
    32. "fill":
    33. {
    34. "color": ["#C7EECF"],
    35. "pattern": 1
    36. }
    37. }`)

    类型:minimum - 当条件格式 criteriabetweennot between 时,minimum 参数用于设置下限值。

    类型:maximum - 当条件格式 criteriabetweennot between 时,maximum 参数用于设置上限值,参考上面的例子。

    1. // 最前最后规则:高于平均值...
    2. f.SetConditionalFormat("Sheet1", "A1:A10", fmt.Sprintf(`[
    3. {
    4. "type": "average",
    5. "criteria": "=",
    6. "format": %d,
    7. "above_average": true
    8. }]`, format1))
    9. // 最前最后规则:低于平均值...
    10. f.SetConditionalFormat("Sheet1", "B1:B10", fmt.Sprintf(`[
    11. {
    12. "type": "average",
    13. "criteria": "=",
    14. "format": %d,
    15. "above_average": false
    16. }]`, format2))

    类型:duplicate - 用于设置“突出显示单元格规则”中的“重复值 …”:

    1. // 突出显示单元格规则: 重复值...
    2. f.SetConditionalFormat("Sheet1", "A1:A10", fmt.Sprintf(`[
    3. {
    4. "type": "duplicate",
    5. "criteria": "=",
    6. "format": %d
    7. }]`, format))

    类型:unique - 用于设置“突出显示单元格规则”中“只为以下内容的单元格设置格式”的“特定文本”:

    1. // 突出显示单元格规则,只为以下内容的单元格设置格式: 特定文本 不等于...
    2. f.SetConditionalFormat("Sheet1", "A1:A10", fmt.Sprintf(`[
    3. {
    4. "type": "unique",
    5. "format": %d
    6. }]`, format))

    类型:top - 用于设置“最前最后规则”中的“前 10 项…”或“前 10% …”:

    1. // 最前最后规则: 前 10 项...
    2. f.SetConditionalFormat("Sheet1", "H1:H10", fmt.Sprintf(`[
    3. {
    4. "type": "top",
    5. "criteria": "=",
    6. "format": %d,
    7. "value": "6"
    8. }]`, format))

    设置带有百分比条件的条件格式:

    类型:2_color_scale - 用于设置带有“双色刻度”的“色阶样式”条件格式:

    1. // 色阶:双色刻度
    2. f.SetConditionalFormat("Sheet1", "A1:A10", `[
    3. {
    4. "type": "2_color_scale",
    5. "criteria": "=",
    6. "min_type": "min",
    7. "max_type": "max",
    8. "min_color": "#F8696B",
    9. "max_color": "#63BE7B"
    10. }]`)

    双色刻度色阶条件格式可选参数:min_typemax_typemin_valuemax_valuemin_colormax_color

    类型:3_color_scale - 用于设置带有“三色刻度”的“色阶样式”条件格式:

    1. // 色阶:三色刻度
    2. f.SetConditionalFormat("Sheet1", "A1:A10", `[
    3. {
    4. "type": "3_color_scale",
    5. "criteria": "=",
    6. "min_type": "min",
    7. "max_type": "max",
    8. "min_color": "#F8696B",
    9. "mid_color": "#FFEB84",
    10. "max_color": "#63BE7B"
    11. }]`)

    三色刻度色阶条件格式可选参数: min_typemid_typemax_typemin_valuemid_valuemax_valuemin_colormid_colormax_color

    类型:data_bar - 用于设置“数据条”类型的条件格式。

    min_type - 参数 min_type 在条件格式类型为 2_color_scale3_color_scaledata_bar 时可用。参数 mid_type 在条件格式类型为 3_color_scale 时可用。例如:

    1. // 数据条:渐变填充
    2. f.SetConditionalFormat("Sheet1", "K1:K10", `[
    3. {
    4. "type": "data_bar",
    5. "criteria": "=",
    6. "min_type": "min",
    7. "max_type": "max",
    8. "bar_color": "#638EC6"
    9. }]`)

    mid_type - 当条件格式类型为 3_color_scale 时使用,与 min_type 用法相同,参考上面的表格。

    max_type - 与 min_type 用法相同,参考上面的表格。

    min_value - 参数 min_valuemax_value 在条件格式类型为 2_color_scale3_color_scaledata_bar 时可用。参数 mid_value 在条件格式类型为 3_color_scale 时可用。

    mid_value - 在条件格式类型为 3_color_scale 时可用,与 min_value 的用法相同,参考上述文档。

    max_value - 与 min_value 的用法相同,参考上述文档。

    min_color - 参数 min_colormax_color 在条件格式类型为 2_color_scale3_color_scaledata_bar 时可用。参数 mid_color 在条件格式类型为 3_color_scale 时可用。例如:

    1. // 色阶:三色刻度
    2. f.SetConditionalFormat("Sheet1", "B1:B10", `[
    3. {
    4. "type": "3_color_scale",
    5. "criteria": "=",
    6. "min_type": "min",
    7. "mid_type": "percentile",
    8. "max_type": "max",
    9. "min_color": "#F8696B",
    10. "mid_color": "#FFEB84",
    11. "max_color": "#63BE7B"

    mid_color - 当条件格式类型为 3_color_scale 时使用。与 min_color 用法相同,参考上述文档。

    max_color - 与 min_color 用法相同,参考上述文档。

    bar_color - 当条件格式类型为 data_bar 时使用。与 min_color 用法相同,参考上述文档。

    例如,为名为 Sheet1 的工作表中,通过设置条件格式高亮 区域单元格中的最大值与最小值: