我想要的是能够根据其中的文本值更改某些Excel文件的单元格的颜色。
这就是我所拥有的:
private void validator(Excel.Worksheet sheet, int lastCellRowNum, XlRgbColor color)
{
FormatCondition cond = sheet.get_Range("A1:I"+lastCellRowNum,Type.Missing).FormatConditions.Add(XlFormatConditionType.xlCellValue, XlFormatConditionOperator.xlEqual, sheet.Cells[1,1]);
cond.Interior.Color = color;
}
此代码将Cell [1,1]的精确值与其他值进行比较,而不仅仅是包含的一段字符串。
基本上,我想要的是一种允许“包含”条件的格式,以提高我的代码的性能。例如,如果在Cell [1,1] .Value2中为“Hello”,我希望任何Value2等于“ByeHelloBye”的Cell或任何其他包含“Hello”的字符串都包含在条件中。
现在我必须多次调用这个方法30次,因为我无法弄清楚如何制作这个条件。要将所有格式应用到70.000行,需要35秒。太多了。
我的问题的其他可能解决方案是:
抱歉我的英语,并提前致谢。
答案 0 :(得分:4)
所以朋友找到了这个可怕问题的答案。允许此“包含”格式的功能实际存在。这就是它的完成方式:
FormatCondition cond = sheet.get_Range("A1:I70000", Type.Missing).FormatConditions.Add(XlFormatConditionType.xlTextString, Type.Missing, Type.Missing, Type.Missing, "SomethingToFilterIfContained", XlContainsOperator.xlContains, Type.Missing, Type.Missing);
cond.Interior.Color = color;
我希望这有助于某人。