Excel sheet not closing
本问题已经有最佳答案,请猛点这里访问。
0
我有一套功能。如果该函数通过,那么我将通过名为ExcelRecorder()的函数在名为WebServices_output.xlsx的Excel工作表中打印一些消息。如果失败,那么我将通过ExcelRecorder()传递一些失败的消息。
在下面发布我的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public void ExcelRecorder(int error, string detailmessage, string message, int row) { Excel.Application xlApp = new Excel.Application(); Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:/WebServiceTestCases_Output.xlsx"); Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1]; Excel.Range xlRange = xlWorksheet.UsedRange; if (!string.IsNullOrEmpty(message)) { ((Range)xlWorksheet.Cells[row,"M"]).Value2 ="FAIL"; ((Range)xlWorksheet.Cells[row,"N"]).Value2 = error; ((Range)xlWorksheet.Cells[row,"O"]).Value2 = detailmessage; ((Range)xlWorksheet.Cells[row,"P"]).Value2 = message; } else { ((Range)xlWorksheet.Cells[row,"M"]).Value2 ="PASS"; ((Range)xlWorksheet.Cells[row,"N"]).Value2 =""; ((Range)xlWorksheet.Cells[row,"O"]).Value2 =""; ((Range)xlWorksheet.Cells[row,"P"]).Value2 =""; } xlWorkbook.Save(); xlWorkbook.Close(0,0,0); xlApp.Quit(); } |
虽然我特别保存我的工作簿,关闭它然后退出,但当我打开任务管理器时,我看到excel.exe仍在运行。当我运行ExcelRecorder()五到六次时,我在任务管理器中看到五到六个excel.exe,程序崩溃。
这里怎么了?尽管我已经添加了关闭工作簿的代码行,但为什么工作簿没有关闭?
你需要这样做:
1 | xlApp.Quit(); |
然后:
1 | System.Runtime.Marshal.ReleaseComObject(xlApp); |