私は一連の機能を持っています。その関数が合格した場合、ExcelRecorder()という関数を介してWebServices_output.xlsxというExcelシートにいくつかのメッセージを出力しています。失敗した場合は、ExcelRecorder()を介していくつかの失敗したメッセージを渡します。
以下に私のコードを投稿しています
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()を5〜6回実行すると、タスクマネージャーに5〜6個のExcel.EXEが表示され、プログラムがクラッシュします。
ここで何が問題になっていますか?ブックを閉じるためのコード行を追加したのに、ブックが閉じられないのはなぜですか?