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

时间:2016-07-05 11:53:37

标签: c# .net excel visual-studio-2012

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

问题是当我执行此代码时,调试器在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();

1 个答案:

答案 0 :(得分:1)

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

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

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

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