2

このコードで作成された 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];

行を反復処理し、2 番目の列に特定の値を持つ行ごとに、この行の背景色を赤に変更したいと思います。

アドバイスをいただければ幸いです。

よろしく。

4

2 に答える 2

2

あなたがしたいのは、相互運用機能を使用した条件付き書式です。Microsoft はここに簡単な例を示しています。

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

于 2012-07-25T18:38:09.443 に答える
0

以下のコードは、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();
于 2013-03-07T12:00:29.200 に答える