如何结束excel.exe进程?

sam*_*_33 1 .net vb.net excel .net-3.5

我试图从vb.net 3.5获得excel文件的excel表名,但它打开但excel.exe仍然在这个过程中.如何在不从任务管理器中删除excel.exe的情况下停止进程?

我意识到新的excel.application开始了新的过程.

我试图使用戒烟,关闭和处置.......................没有任何效果

以下是我的代码

   Dim sheetName As New Excel.XlSheetType
   Dim newExcell As New Excel.Application
   Dim newWorkBook As Excel.Workbook = app.Workbooks.Open(MyFileName)
   Dim worksheetName As String
   Dim ws As Excel.Worksheet = CType(WB.Worksheets.Item(1), Excel.Worksheet)
    worksheetName = ws.Name
Run Code Online (Sandbox Code Playgroud)

我不能使用kill因为有其他excel应用程序正在运行,所以如何从处理器关闭这个特定的excel.exe.请帮忙

Joe*_*Joe 5

这篇KB文章描述了这个问题.

但是,要解决这个问题并不容易,因为您必须确保在实例化的每个Excel对象上调用Marshal.ReleaseComObject - 而且很容易错过一个.

例如,以下代码隐式引用Workbooks对象:

Dim newWorkBook As Excel.Workbook = app.Workbooks.Open(MyFileName) 
Run Code Online (Sandbox Code Playgroud)

要释放Workbooks对象,您需要显式引用它,以便您有一个可以调用Marshal.ReleaseComObject的引用:

Dim objWorkbooks As Excel.Workbooks = app.Workbooks
Dim newWorkbook As Excel.Workbook = objWorkbooks.Open(MyFileName)
...
Marshal.ReleaseComObject(objWorkbooks)
Marshal.ReleaseComObject(newWorkbook)
...
Run Code Online (Sandbox Code Playgroud)

您还应该使用Try/Finally来确保即使抛出异常也会调用ReleaseComObject.