读取Excel单元格并设置行颜色

时间:2012-07-30 21:38:19

标签: c# excel com interop

我正在使用Com Interop和C#。我必须遍历Excel文件,在每个行中查找某些值(始终在第2列中)。对于某些值,我需要将行的背景颜色设置为红色。

我遇到了麻烦:

  1. 读取第i行的单元格[i] [2]中的值,
  2. 设置此行的背景颜色。
  3. 基本上我正在寻找类似这样的东西(这是我在谷歌搜索后发现的最好的东西):

    // ws is the worksheet
    for (int i = 1; i <= ws.Rows.Count; i++)
    {
        Range range = ws.Cells[i][2];
        int count = Convert.ToInt32(range.Value2.ToString());
        if (count >= 3)
        {
            Range chronic = ws.UsedRange.Rows[i];
            chronic.EntireRow.Cells.Interior.Color = 0xFF0000;
        }
    }
    

    当然这不起作用。我无法超越阅读细胞的第一道障碍。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

试试这个。代码假设第2列单元格中的值是数字。

using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;

Missing noValue = Missing.Value;
Excel.Range conditionalCell;
foreach (Excel.Range usedRange in ws.UsedRange.Rows)
{
    conditionalCell = usedRange.Cells[noValue, 2] as Excel.Range;
    if (Convert.ToInt32(conditionalCell.Value2) >= 3)
    {
        usedRange.Cells.Interior.Color = Excel.XlRgbColor.rgbRed;
    }
}