我正在使用此代码创建 Excel 报告:
var excel = new Excel.Application();
foreach (var report in m_reports)
report.PrintReport(excel.Workbooks.Add().Sheets.Add());
excel.Visible = true;
一切正常。但是,当用户手动关闭 Excel 时,Excel 进程在任务管理器中保持打开状态。为什么?
在 MSDN 上查看有关发布 ComObjects的信息
System.Runtime.InteropServices.Marshal.ReleaseComObject( excel );
另外,如果您想在该 foreach 循环中执行其他操作,我建议您以正确的代码块格式包装您的代码,例如
foreach (var report in m_reports)
{
report.PrintReport(excel.Workbooks.Add().Sheets.Add());
}
excel.Visible = true;
//Release the ComObject
System.Runtime.InteropServices.Marshal.ReleaseComObject( excel );