关于VB.net关闭EXCEL进程的问题
我有一台服务器,一台客户端PC机.
开发的软件是VB.NET2003, 实现的功能是将EXCEL文件用dialog下载后,关闭EXCEL进程。
用过Kill进程,也用过
System.Runtime.InteropServices.Marshal.ReleaseComObject(mySheet)
System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook)
System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel)
在服务器上单独运行是可以的,EXCEL进程是可以杀掉的。
但是如果在客户端PC机上用WEB方式浏览系统,文件下载后,进程还保留在SERVER上面。也就是说没有杀掉进程。
在执行For Each p In System.Diagnostics.Process.GetProcesses()的时候,会有错,错误是:
couldn't get process information from remote machine.
但是用上面ReleaseComObject的方法怎么也杀不掉呢。
想问一下,大家有啥解决办法么?谢谢!
开发的软件是VB.NET2003, 实现的功能是将EXCEL文件用dialog下载后,关闭EXCEL进程。
用过Kill进程,也用过
System.Runtime.InteropServices.Marshal.ReleaseComObject(mySheet)
System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook)
System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel)
在服务器上单独运行是可以的,EXCEL进程是可以杀掉的。
但是如果在客户端PC机上用WEB方式浏览系统,文件下载后,进程还保留在SERVER上面。也就是说没有杀掉进程。
在执行For Each p In System.Diagnostics.Process.GetProcesses()的时候,会有错,错误是:
couldn't get process information from remote machine.
但是用上面ReleaseComObject的方法怎么也杀不掉呢。
想问一下,大家有啥解决办法么?谢谢!
Private Function CreateFile() As Boolean
Dim rValue As Boolean = False
Dim myExcel As New Excel.Application
Dim myBook As Excel.Workbook
Dim mySheet As Excel.Worksheet
Dim Folder as string="C:\File\"
Dim FileName as string = "A.csv"
Try
myBook = myExcel.Workbooks.Add()
mySheet = CType(myBook.Worksheets.Item(1), Excel.Worksheet)
mySheet.Activate()
mySheet.Cells(2, 1) = "Name"
mySheet.Cells(3, 1) = "Sex"
myBook.SaveAs(Folder & FileName)
myBook.Close(True)
myExcel.Quit()
myBook = Nothing
myExcel = Nothing
ProcessKill()
GC.Collect()
bReturnVal = True
Catch ex As Exception
mErrMsg = ex.Message
myBook.Close()
myExcel.Quit()
myBook = Nothing
myExcel = Nothing
ProcessKill()
rValue= False
End Try
Return rValue
End Function
Private Sub ProcessKill()
Dim p As System.Diagnostics.Process
p = New System.Diagnostics.Process
For Each p In System.Diagnostics.Process.GetProcesses()
If p.ProcessName.ToUpper() = "EXCEL" Then
p.Kill()
End If
Next
End Sub
...全文
相关推荐
vb.net 操作excel
**保存和关闭工作簿及应用程序**: 完成操作后,别忘了保存更改并关闭Excel应用,以释放资源: ```vb.net workbook.Save() workbook.Close() excelApp.Quit
VB Excel的DDE 链接
在VB(Visual Basic)编程环境中,DDE(Dynamic Data Exchange)是一种早期的进程间通信(IPC)技术,用于不同应用程序之间交换数据。
vb.net 读取excel
- 保存整个工作簿并关闭。- 关闭Excel应用程序并结束所有Excel进程。
vb 操作excle
本文将详细介绍如何使用VB进行Excel操作,并提供解决方案以处理可能遇到的进程残留问题。首先,我们需要引入必要的引用。
在 ASP.NET 中进行 EXCEL 开发
需要注意的是,使用完毕后要记得关闭Excel应用程序和工作簿,以释放资源,防止进程无法释放的问题。优化Excel执行效率可以通过减少不必要的计算、批量操作以及及时释放对象来实现。


