【发布时间】:2010-03-16 06:03:11
【问题描述】:
我正在使用 Windows 应用程序将数据表导出到 Excel。它正在工作。现在我想为单元格中的特定文本提供一些颜色。我该怎么做?
【问题讨论】:
我正在使用 Windows 应用程序将数据表导出到 Excel。它正在工作。现在我想为单元格中的特定文本提供一些颜色。我该怎么做?
【问题讨论】:
对于文本:
[RangeObject].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
用于单元格背景
[RangeObject].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
【讨论】:
Excel.XlRgbColor.rgbRed 来避免System.Drawing.ColorTranslator 的混乱。
注意:这假设您将为名为@987654321@、FIRST_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;
【讨论】:
对于 C#,使用 Workbook 类(它实现了 Workbook 接口)可以提供很多着色工具。我使用 Workbook(下例中的 templateWorkbook)如下设置颜色:
var copyFormating = templateWorkbook.Worksheets[sheetName].Cells[9,0].GetStyle();
copyFormating.ForegroundColor = System.Drawing.Color.Gold;
copyFormating.Font.Color = System.Drawing.Color.Black;
copyFormating.HorizontalAlignment = TextAlignmentType.Center;
【讨论】: