在excel中根据单元格值更改单元格颜色的问题

本文关键字:单元格 颜色 问题 excel | 更新日期: 2023-09-27 17:55:06

我尝试根据其内容更改特定单元格值的颜色,我有下面的代码,它似乎很好,没有抛出任何错误。

问题是当我规则这个代码调试器停在xlWorkBook.Close(true, misValue, misValue);,我不知道为什么代码停在这里。如果有人能帮忙,请告诉我。

      foreach (DataTable table in ds.Tables)
        {
           for (int j = 1; j < table.Rows.Count; j++)
            {
                var cellvalue = (string)(excelWorkSheet.Cells[j, 5] as Excel.Range).Value;
                if (cellvalue == "Red")
                {
                    excelWorkSheet.Cells[5, j].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
                }
                else if (cellvalue == "Blue")
                {
                    excelWorkSheet.Cells[5, j].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue);
                }
                else if (cellvalue == "Yellow")
                {
                    excelWorkSheet.Cells[5, j].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow);
                }
                else if (cellvalue == "Orange")
                {
                    excelWorkSheet.Cells[5, j].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Orange);
                }
                else
                {
                    excelWorkSheet.Cells[5, j].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green);
                }
            }

        }
        xlWorkBook.Sheets["Sheet1"].Delete();
        xlWorkBook.Close(true, misValue, misValue);
        xlApp.Quit();

在excel中根据单元格值更改单元格颜色的问题

工作簿。Close有三个参数;所有可选的。如果你没有指定该选项的参数,它们将被简单地按顺序获取。

如果您不需要指定除默认参数以外的参数,则忽略它。

'expression .Close(SaveChanges, Filename, RouteWorkbook)
'in your case
xlWorkBook.Close(true);

这应该足以保存更改到您的工作簿,并以相同的名称关闭它