应用程序没有从任务pipe理器发布

我试图从Windows窗体中写入一些数据到Excel文件,这是有效的。

  ' Excel load data Dim oExcelApp As New Microsoft.Office.Interop.Excel.Application Dim oWorkBook As Microsoft.Office.Interop.Excel.Workbook Dim oWorkSheet As Microsoft.Office.Interop.Excel.Worksheet oWorkBook = oExcelApp.Workbooks.Open("C:\Temp\Test.xlsx") oWorkSheet = oWorkBook.Worksheets(1) oWorkSheet.Range("A1").Value = "Test" oWorkBook.Save() oWorkBook.Close() 

问题是:完成后, Excel仍在我的任务pipe理器中运行。 当我按下button10次时,在我的任务pipe理器中有10个Excel引用。

问题:如何在将值写入Excel后完全卸载Excel

您需要Quit Microsoft Excel,然后释放对象。

从这个答案引用的代码: 使用VB.NET处理Excel COM对象的正确方法? 而Excel应用程序在调用退出后不会退出

 'Excel load data Dim oExcelApp As New Microsoft.Office.Interop.Excel.Application Dim oWorkBook As Microsoft.Office.Interop.Excel.Workbook Dim oWorkSheet As Microsoft.Office.Interop.Excel.Worksheet oWorkBook = oExcelApp.Workbooks.Open("C:\Temp\Test.xlsx") oWorkSheet = oWorkBook.Worksheets(1) oWorkSheet.Range("A1").Value = "Test" oWorkBook.Save() oWorkBook.Close() oExcelApp.Quit() 'Release object references. releaseObject(oWorkSheet) releaseObject(oWorkBook) releaseObject(oExcelApp) ---------------------------------------------------------------------------- Private Sub releaseObject(ByVal obj As Object) Try System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) obj = Nothing Catch ex As Exception obj = Nothing Finally GC.Collect() End Try End Sub 

您必须closures刚打开的连接。 您可以通过在当前代码之后添加以下代码来完成此操作:

 oExcelApp.Quit(); 

来源及更多信息: 在这里

有关这里的quit()方法的更多信息。

重要提示:如果您打开尚未保存的工作簿,则此方法将显示一个要求保存的对话框。

如果你不想这样做,你必须(1):保存所有打开的工作簿或(2)将DisplayAlerts设置为false。

(1)

 workbooks.Save() 

(2)

 oExcelApp.DisplayAlerts = false