Spreadsheetgear - 通过条件格式添加背景颜色
Spreadsheetgear - Add background color via conditional formatting
我正在尝试使用条件格式在单元格的值超过特定阈值时添加橙红色背景色。这是我的代码:
Dim condition As IFormatCondition = thisRow(0, 6).FormatConditions.Add(FormatConditionType.CellValue, FormatConditionOperator.GreaterEqual, 0.035, Nothing)
condition.Interior.Color = Drawing.Color.FromArgb(230, 184, 183)
条件创建正确,但出于某种原因,它没有将背景颜色设置为鲑鱼色,而是使用了 rgb(192, 192, 192)。
我做错了什么?
想到两种可能性:
您使用的是 SpreadsheetGear 2012 (V7) 或更早版本。这些旧版本的 SpreadsheetGear 对条件格式 (CF) 的支持有限——其中之一是对 24 位颜色的有限支持。当您为不在工作簿的 56 色调色板 (IWorkbook.Colors) 中的 CF 指定任意 24 位颜色时,SpreadsheetGear 会将提供的颜色映射到调色板中最接近的匹配项。
SpreadsheetGear 2017 / V8 大大改进了对条件格式的支持,包括使用任意 24 位 RGB 颜色的能力,因此升级可以解决此问题。
您正在保存为旧的 Excel 97-2003 (*.xls) 文件格式。即使您使用的是 SpreadsheetGear 2017+,如果您保存为这种较旧的文件格式,CF 也会丢失 24 位颜色,并再次映射到工作簿的 56 色调色板中找到的最接近的颜色。在这种情况下,最好保存为 Open XML(*.xlsx 或 *.xlsm)文件格式,它具有完整的 24 位颜色支持。
我正在尝试使用条件格式在单元格的值超过特定阈值时添加橙红色背景色。这是我的代码:
Dim condition As IFormatCondition = thisRow(0, 6).FormatConditions.Add(FormatConditionType.CellValue, FormatConditionOperator.GreaterEqual, 0.035, Nothing)
condition.Interior.Color = Drawing.Color.FromArgb(230, 184, 183)
条件创建正确,但出于某种原因,它没有将背景颜色设置为鲑鱼色,而是使用了 rgb(192, 192, 192)。
我做错了什么?
想到两种可能性:
您使用的是 SpreadsheetGear 2012 (V7) 或更早版本。这些旧版本的 SpreadsheetGear 对条件格式 (CF) 的支持有限——其中之一是对 24 位颜色的有限支持。当您为不在工作簿的 56 色调色板 (IWorkbook.Colors) 中的 CF 指定任意 24 位颜色时,SpreadsheetGear 会将提供的颜色映射到调色板中最接近的匹配项。
SpreadsheetGear 2017 / V8 大大改进了对条件格式的支持,包括使用任意 24 位 RGB 颜色的能力,因此升级可以解决此问题。
您正在保存为旧的 Excel 97-2003 (*.xls) 文件格式。即使您使用的是 SpreadsheetGear 2017+,如果您保存为这种较旧的文件格式,CF 也会丢失 24 位颜色,并再次映射到工作簿的 56 色调色板中找到的最接近的颜色。在这种情况下,最好保存为 Open XML(*.xlsx 或 *.xlsm)文件格式,它具有完整的 24 位颜色支持。