使用C#在Excel中更改单元格颜色


68

我正在使用Windows应用程序将数据表导出到Excel。工作正常 现在,我想为单元格中的特定文本提供一些颜色。我该怎么做?

Answers:


142

对于文字:

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

对于细胞背景

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

21
您可以System.Drawing.ColorTranslator通过使用Excel.XlRgbColor.rgbRed来避免混乱。
kmote 2015年

如何按单元格颜色排序?
2013年

1
在“单元格”属性上使用此功能可删除边框。在带有两个索引器的Range属性上使用此属性将导致COM异常。

为什么是ColorTranslator.ToOle但不是ColorTranslator.ToWin32?
user3187356'9

13

注:这是假设你将声明常量命名的行和列的索引COLUMN_HEADING_ROWFIRST_COL以及LAST_COL,那_xlSheet是的名称ExcelSheet(使用Microsoft.Interop.Excel

首先,定义范围:

var columnHeadingsRange = _xlSheet.Range[
    _xlSheet.Cells[COLUMN_HEADING_ROW, FIRST_COL],
    _xlSheet.Cells[COLUMN_HEADING_ROW, LAST_COL]];

然后,设置该范围的背景色:

columnHeadingsRange.Interior.Color = XlRgbColor.rgbSkyBlue;

最后,设置字体颜色:

columnHeadingsRange.Font.Color = XlRgbColor.rgbWhite;

这是合并的代码:

var columnHeadingsRange = _xlSheet.Range[
    _xlSheet.Cells[COLUMN_HEADING_ROW, FIRST_COL],
    _xlSheet.Cells[COLUMN_HEADING_ROW, LAST_COL]];

columnHeadingsRange.Interior.Color = XlRgbColor.rgbSkyBlue;

columnHeadingsRange.Font.Color = XlRgbColor.rgbWhite;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.