从excel上传数据并将其存储在gridview中,然后关闭应用程序后,在执行所有任务后将显示以下弹出窗口。enter image description here
已为excel wokbook和excel表格编写了代码以关闭 即:sWorkbook.Close(); sExcelApp.Quit();
答案 0 :(得分:0)
以上消息是由于您的excel对象未关闭而仍保留在系统进程中。
您实际上可以干净地释放Excel Application对象,但是您必须小心。
您访问的COM对象然后通过Marshal.FinalReleaseComObject()
显式释放它在理论上是正确的,但是,不幸的是,在实践中很难管理。
// Cleanup
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.FinalReleaseComObject(xlRng);
Marshal.FinalReleaseComObject(xlSheet);
xlBook.Close(Type.Missing, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(xlBook);
xlApp.Quit();
Marshal.FinalReleaseComObject(xlApp);
在大多数代码示例中,您都会看到从.NET清理COM对象的过程,对GC.Collect()
和GC.WaitForPendingFinalizers()
的调用是两次TWICE:
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();