Vb.net 应用程序未从任务管理器中释放
我正在尝试将Windows窗体中的一些数据写入一个Vb.net 应用程序未从任务管理器中释放,vb.net,excel,Vb.net,Excel,我正在尝试将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.Wor
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
仍在我的任务管理器中运行。当我按下按钮10次时,我的任务管理器中有10个Excel
引用
问题:在将值写入
Excel
后,如何完全卸载Excel
?您必须关闭刚刚打开的连接。您可以在当前代码后添加此行:
oExcelApp.Quit();
来源和更多信息:
有关quit()
方法的详细信息
重要提示:如果打开的工作簿尚未保存,此方法将显示一个对话框,请求保存
如果您不想这样做,您必须(1):保存所有打开的工作簿或(2)将displayerts
设置为false
(一)
(二)
您需要退出Microsoft Excel,然后释放对象 此答案引用的代码:和
我在末尾添加了oExcelApp.Quit()。但我仍然可以在我的任务管理器中看到Excel?请给我一点时间,自己创建一个测试应用程序进行检查。这里已经有一个答案:。请检查它有很多关于为什么会发生这种情况的信息,请检查它。请您在回答中解释为什么会发生这种情况,以及为什么您需要调用
ReleaseComObject
,这样其他人就知道是什么导致了这个问题。看一看并提出一些问题。我知道去哪里看这是我的问题:)我请您解释。如果你不能请引用你的来源代码>感谢您的宝贵建议和参考资料。现在进入下一个障碍;)
workbooks.Save()
oExcelApp.DisplayAlerts = false
'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