【问题标题】:Cell color changing in Excel using C#使用 C# 在 Excel 中更改单元格颜色
【发布时间】:2010-03-16 06:03:11
【问题描述】:

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

【问题讨论】:

    标签: c# excel ms-office


    【解决方案1】:

    对于文本:

    [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 的混乱。
    • 如何按单元格颜色排序?
    • 在 Cells 属性上使用它会擦除边框。将这个在 Range 属性上与两个索引器一起使用会导致 COM 异常。
    • 为什么是 ColorTranslator.ToOle 而不是 ColorTranslator.ToWin32?
    【解决方案2】:

    注意:这假设您将为名为@9​​87654321@、FIRST_COLLAST_COL 的行和列索引声明常量,并且_xlSheetExcelSheet 的名称(使用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;
    

    【讨论】:

      【解决方案3】:

      对于 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;
      

      【讨论】:

        猜你喜欢
        • 2013-03-09
        • 2021-11-04
        • 2011-01-28
        • 2013-11-12
        • 1970-01-01
        • 1970-01-01
        • 2012-01-23
        • 1970-01-01
        相关资源
        最近更新 更多