我尝试根据其内容更改特定单元格值的颜色,我有以下代码,似乎没有任何错误。
问题是当我执行此代码时,调试器在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();
答案 0 :(得分:1)
Workbook.Close有三个参数;所有可选的。如果您没有指定选项的参数,则只需按顺序进行。
如果您不需要指定默认参数以外的参数,请忽略它。
'expression .Close(SaveChanges, Filename, RouteWorkbook)
'in your case
xlWorkBook.Close(true);
这应该足以将更改保存到您的工作簿并以相同的名称关闭它。