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

我试图改变基于其内容的特定单元格值的颜色,我有下面的代码,它似乎是罚款没有任何错误。

问题是当我运行这个代码时,debugging器停在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(); 

Workbook.Close有三个参数; 全部可选。 如果您不指定选项的参数,则只需按顺序进行。

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

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

这应该足以保存对您的工作簿所做的更改并以相同的名称closures它。