【问题标题】:How can I change color of text in a cell of MS Excel?如何更改 MS Excel 单元格中文本的颜色?
【发布时间】:2016-04-07 11:51:07
【问题描述】:

我正在使用Microsoft.Office.Interop.Excel 库。

我有一个值为“Green Red”的单元格。我想要的很简单。我想将“Green”文本插入绿色,将“Red”插入红色,如下所示:

我正在使用此代码在单元格中插入数据:

Excel.Application excelApp = new Excel.Application();
excelApp.Workbooks.Add();
// single worksheet
Excel._Worksheet workSheet = excelApp.ActiveSheet;

for (int startIndex = 0; startIndex < 10; startIndex++)
{
    workSheet.Cells[1, (startIndex + 1)] ="Green" + " Red";
}

怎么做?

我有tried this approach,但我不知道[RangeObject]是什么:

[RangeObject].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);

【问题讨论】:

标签: c# excel


【解决方案1】:

试试:

workSheet.Cells[1, (i + 1)].Characters[start_pos, len].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);

其中start_poslen 是字符串中应用颜色的部分。

您的用例示例:

    Application excelApp = new Application();
    excelApp.Workbooks.Add();
    // single worksheet
    _Worksheet workSheet = excelApp.ActiveSheet;

    string Green = "Green";
    string Red = "Red";
    for (int start = 0; start < 10; start++)
    {
        Range ColorMeMine = workSheet.Cells[1, (start + 1)];
        ColorMeMine.Value = string.Format("{0} {1}", Green, Red);
        ColorMeMine.Characters[0, Green.Length].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green);
        ColorMeMine.Characters[Green.Length + 1, Green.Length + 1 + Red.Length].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
    }

【讨论】:

  • 什么是Range?我应该使用什么库来获取 Range 类?
  • A Range "表示一个单元格、一行、一列、包含一个或多个连续单元格块的单元格选择,或 3-D 范围"。您可以在 Microsoft.Office.Interop.Excel 命名空间中找到它。
  • 酷,这工作得很好。请记住添加 System.Drawing 作为参考。
猜你喜欢
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多