C#如何更改特定行的颜色

11

我想问大家,如何在Excel表格中,如果单元格1不为空,将一行的颜色更改为红色。

XX     YY     ZZ
-----------------
aa     bb     cc
aa1    bb1    cc1
aa2           cc2
aa3    bb3    cc3
aa4          

Excel.Application xlApp;
Excel. Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;

非常感谢。


你正在使用哪个库? - Danilo Vulović
Microsoft.Office.Interop.Excel - Uni Le
我尝试过 xlWorkSheet.Cells["A2", "B2"].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); 但它给了我一个 COMException 错误。 - Uni Le
2个回答

18

试一下这个,我已经测试过了,它有效:

Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Open(@"C:\Test\Whatever.xlsx");
Excel.Worksheet worksheet = workbook.ActiveSheet;

Excel.Range usedRange = worksheet.UsedRange;

Excel.Range rows = usedRange.Rows;

int count = 0;

foreach (Excel.Range row in rows)
{
    if (count > 0)
    {
        Excel.Range firstCell = row.Cells[1];

        string firstCellValue = firstCell.Value as String;

        if (!string.IsNullOrEmpty(firstCellValue))
        {
            row.Interior.Color = System.Drawing.Color.Red;
        }
    }

    count++;
}

workbook.Save();
workbook.Close();

application.Quit();

Marshal.ReleaseComObject(application);

我在这里遇到了错误:string firstCellValue = firstCell.Value; RuntimeBinderException: 无法将double转换为字符串。 - Uni Le
还有一个问题,它也改变了我的页眉颜色,我该怎么办? - Uni Le

2
Excel.Application xlAppToExport = new Excel.Application();
xlAppToExport.Workbooks.Add("");
Excel.Worksheet xlWorkSheetToExport = default(Excel.Worksheet);
xlWorkSheetToExport = (Excel.Worksheet)xlAppToExport.Sheets["Sheet1"];

xlWorkSheetToExport.Range["A5:F5"].EntireRow.Interior.Color = System.Drawing.Color.Gray;

1
最好能够解释这个方法是如何解决问题的。 - kangaroo_cliff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接