vb.net创建电子表格,但手动关闭excel后仍保留虚拟进程
我的vb.net代码用于生成Excel电子表格。创建Excel文件并关闭程序和Excel后,将保留一个虚拟进程。我尝试了以下方法:vb.net创建电子表格,但手动关闭excel后仍保留虚拟进程,excel,vb.net,Excel,Vb.net,我的vb.net代码用于生成Excel电子表格。创建Excel文件并关闭程序和Excel后,将保留一个虚拟进程。我尝试了以下方法: Dim xlApp As Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet Dim xlWorkSheet2 As Excel.Worksheet Dim xlRange As Excel.Range
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim xlWorkSheet2 As Excel.Worksheet
Dim xlRange As Excel.Range
'Write data to Excel here
Marshal.ReleaseComObject(xlApp)
Marshal.ReleaseComObject(xlWorkBook)
Marshal.ReleaseComObject(xlWorkSheet)
Marshal.ReleaseComObject(xlWorkSheet2)
我还尝试了其他一些方法,通过编程终止进程。我想做的是保持由代码生成的Excel工作簿处于打开状态,并在不关闭打开的电子表格的情况下关闭虚拟进程。由于某些原因,当Excel仍处于打开状态时,隐藏的进程不可见,但在手动关闭Excel后,进程仍处于打开状态。有什么建议吗?我曾经经历过类似的噩梦,服务器应用程序将这些excel.exe实例抛在身后 我个人解决这个问题的方法是使用windows计划作业以合理的间隔执行使用TASKKILL/IM Excel命令的批处理文件——虽然不优雅,但它让我们摆脱了困境 如果你不喜欢2007年以前的excel(xls)格式,我建议你看看优秀的(没有双关语)ExcelDataReader和可选的ExcelDataReader.Datasetnuget软件包——这些软件包非常棒,非常适合免费商业使用 有一个简短的教程(用c#编写),用vb重写不需要太多时间 如果您还不能移动到xlsx,并且您对它的数据格式感兴趣,那么您可能需要查看Josh Close的CSVHelperNuget软件包 我已经非常轻松地使用了这两种方法,并且可以确认它们能完成任务
请告诉我这些建议是否有用。可能会提供一些信息,谢谢。是的,我看到了那个线程,但我认为提供的示例杀死了所有Excel实例。我不知道为什么一个幻影进程仍然存在。这有点令人困惑。我找到了一个有效的解决方案。下面的线程修复了问题-->是的,我想是的。谢谢,谢谢你的意见。在看到你的评论之前,我已经解决了这个问题(见我在第一个答案中的上述回答)。没问题。很高兴听到:)