打开/关闭Excel实例 - 进程仍在后台运行

时间:2016-12-12 14:37:20

标签: excel vb.net process

我在我的vb.net应用程序中创建了一个excel excel。我将数据写入其中,保存,然后询问用户是否要打开它。问题是,如果他们选择不查看它 - excel正常关闭并且它没有在进程中运行 - 但是 - 当我在excel中查看然后关闭它时 - 它仍然在WTM进程中运行。这是我的代码......

import re

titleList = []
text = 'a bunch of junk title=book1 more junk text title=book2'

title = re.compile(r'title=([A-Za-z0-9]+)') 
findTitle = title.findall(text.strip())
titleList.extend(findTitle) 
print(titleList)
>> ['book1', 'book2']

编辑:我可能会在TRY CATCH语句中添加这个 - 这是最后一部分...

Dim FileNam As String = "C:\Me\" & ReportName & Format(DateTime.Now, "yyyyMMddhhmmtt") & ".xlsx"

If System.IO.File.Exists(FileNam) Then
   System.IO.File.Delete(FileNam)
End If
wBook.SaveAs(FileNam)
answer = MsgBox("Your extract has been saved here: " & strFileName & vbCrLf & vbCrLf &
                        "Would you like to view the file?",vbYesNo)

If answer = vbYes Then
   System.Diagnostics.Process.Start(FileNam)
End If

1 个答案:

答案 0 :(得分:1)

杀死一个进程并不是一个好主意,原因很多,其中之一就是你会杀死你手动打开的EXCEL实例,你将失去你的更改。如果你想保持这种状态,请通过PID终止进程,并在启动app时保存现有进程。

或者....

关闭Office自动化应用程序,如Excel,Word等。您必须处置COM对象 ..尝试类似的事情:

oApp.ActiveWorkbook.Close(True)
Application.DoEvents()
oApp.Quit()

System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oApp)
oApp = Nothing

oApp 当然是您的办公室Application

您还可以包含垃圾收集,但这不是一个好主意......

GC.Collect() 'Start .NET CLR Garbage Collection
GC.WaitForPendingFinalizers() 'Wait for GC to finish