C#Com Interop:设置一行的背景颜色

我有一个用这个代码创build的Excel工作表:

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet ws = (Worksheet)wb.Worksheets[1]; 

我想循环遍历行和第二列中的每个具有特定值的行,我想将此行的背景颜色更改为红色。

任何意见表示赞赏。

问候。

你想要做的是使用互操作条件格式。 微软在这里有一个直截了当的例子。

http://msdn.microsoft.com/en-us/library/bb404903.aspx

下面的代码创build一个Excel文件,用随机值填充它,如果A列中的值大于5,则将背景颜色转换为绿色。

  Random rnd = new Random(); Excel.Application xlApp = new Excel.Application(); Excel.Workbook wb = xlApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1]; // Set random data in A column for (int i = 1; i < 10; i++) { ws.Range["A" + i, Type.Missing].Value = rnd.Next(10); ws.Range["B" + i, Type.Missing].Value = rnd.Next(10); } // Set background if value in cell A more than 5 int rowNum = 0; foreach (Excel.Range range in ws.Range["A1", "A10"]) { rowNum++; if (range.Value > 5) { foreach (Excel.Range rowRange in ws.Range["A" + rowNum, "B" + rowNum]) { var colorScale = (Excel.ColorScale)rowRange.FormatConditions.AddColorScale(2); colorScale.ColorScaleCriteria[2].FormatColor.Color = 0x0000FF00; } } } // Save and close file wb.SaveAs("C:\\1234567890.xlsx"); wb.Close(false, Type.Missing, Type.Missing); xlApp.Quit();