正确关闭办公室互操作excel应用程序

时间:2016-08-21 18:05:36

标签: vb.net excel

我正在开发一个VB表单应用程序,它使用office互操作库访问excel表单内容。使用Office 2016在Windows 8上进行开发。

采取以下简单的例子:

Import excel = Microsoft.Office.Interop.Excel 

Private Sub Form_Load(sender As Object, e as EventArgs) Handles MyBase.Load
    Dim excelApp as excel.Application = New excel.Application
    excelApp.Quit
End Sub

这似乎会导致泄漏。当表单仍处于打开状态时,来自命令提示符的任务列表调用将显示正在运行的Excel应用程序(在我的计算机上消耗15米的内存)。只有在用户关闭基本VB应用程序后,excel进程才会终止。

对于我的应用程序,取决于在关闭excel进程之前关闭的父进程是不可接受的。我怎样才能杀死这些excel进程?

1 个答案:

答案 0 :(得分:1)

您可以使用Marshal类(MSDN)。我发现以相反的顺序运行所有excel对象是最好的 - >工作表,工作簿,应用程序。

  Marshal.FinalReleaseComObject(comObj)