用Excel和.NET细粒度细胞着色
Microsoft提供了一个.NET API以编程方式设置单元格颜色
Excel.Range rng2 = this.Application.get_Range("A1"); rng2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
有没有办法在两个不同的颜色内
是的,你可以这样做的人物的颜色。 你不能为背景。 背景着色只能在整个单元格上完成
这是一个片段(XlColors枚举的定义被省略)
private static readonly Dictionary<string, XlColors> WordColoring = new Dictionary<string, XlColors> { {"linksaf", XlColors.Red}, {"schuin links", XlColors.Red}, {"links aanhouden", XlColors.Red}, {"rechtsaf", XlColors.Greenish}, {"schuin rechts", XlColors.Greenish}, {"rechts aanhouden", XlColors.Greenish}, {"rechtdoor", XlColors.Blue} }; public void TekstFormatter(Range cell) { string text = (cell.Value2 ?? ""); foreach (KeyValuePair<string, XlColors> colorPair in WordColoring) { int pos = text.IndexOf(colorPair.Key, StringComparison.OrdinalIgnoreCase); if (pos != -1) { Characters chars = cell.Characters[pos + 1, colorPair.Key.Length]; chars.Font.Color = colorPair.Value; chars.Font.Bold = true; } } }