Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Com互操作:设置行的背景颜色_C#_Excel_Com_Interop - Fatal编程技术网

C#Com互操作:设置行的背景颜色

C#Com互操作:设置行的背景颜色,c#,excel,com,interop,C#,Excel,Com,Interop,我有一个用以下代码创建的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]; 我想迭代这些行,对于第二列中具有

我有一个用以下代码创建的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];
我想迭代这些行,对于第二列中具有特定值的每一行,我想将这一行的背景颜色更改为红色

任何建议都将不胜感激


注意。

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


下面的代码创建一个Excel文件,用随机值填充,如果列中的值大于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();
Random rnd=new Random();
Excel.Application xlApp=新的Excel.Application();
Excel.Workbook wb=xlApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet ws=(Excel.Worksheet)wb.Worksheet[1];
//在列中设置随机数据
对于(int i=1;i<10;i++)
{
ws.Range[“A”+i,Type.Missing].Value=rnd.Next(10);
ws.Range[“B”+i,类型.缺失].Value=rnd.Next(10);
}
//如果单元格A中的值大于5,则设置背景
int rowNum=0;
foreach(ws.Range[“A1”、“A10”]中的Excel.Range范围)
{
rowNum++;
如果(范围值>5)
{
foreach(ws.Range[“A”+rowNum,“B”+rowNum]中的Excel.Range行范围)
{
var colorScale=(Excel.colorScale)rowRange.FormatConditions.AddColorScale(2);
colorScale.ColorScaleCriteria[2].FormatColor.Color=0x0000FF00;
}
}
}
//保存并关闭文件
wb.SaveAs(“C:\\1234567890.xlsx”);
wb.Close(false,Type.Missing,Type.Missing);
xlApp.Quit();

工作表有一个
UsedRange
有一个
集合-每个
有一个
单元格
集合-一个
单元格
有一个
和一个
Interior.Color
属性,该属性采用RGB(长)值。