用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; } } }