vb.net创建电子表格但手动关闭excel后仍然存在幻像进程[复制]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我的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

    'Write data to Excel here

    Marshal.ReleaseComObject(xlApp)
    Marshal.ReleaseComObject(xlWorkBook)
    Marshal.ReleaseComObject(xlWorkSheet)
    Marshal.ReleaseComObject(xlWorkSheet2)

我还尝试过其他一些以编程方式杀死进程的东西。我想要做的是保持代码打开生成的Excel工作簿并终止幻像进程而不杀死打开的电子表格。出于某种原因,在Excel仍处于打开状态时隐藏进程不可见,但在手动关闭Excel后,进程仍保持打开状态。有什么建议?

excel vb.net
1个回答
0
投票

过去,我经历过类似的噩梦,服务器应用程序将这些excel.exe实例留在后面。

我个人解决这个问题的方法是使用Windows预定作业来执行批处理文件,该文件在合理的时间间隔内使用TASKKILL / IM Excel命令 - 不优雅,但它让我们脱离了一些热水。

如果你没有坚持使用2007年之前的excel(xls)格式,我建议你看看优秀的(没有双关语)ExcelDataReader和可选的ExcelDataReader.Dataset nuget包 - 这些非常棒,非常适合免费商业用途。

有一个简短的教程(在c#中)here,在vb中重写不会太多。

如果你还不能移动到xlsx,并且它的数据不仅仅是你感兴趣的格式化,你可能想要查看Josh Close的CSVHelper Nuget包。

我已经非常轻松地使用了这两个,并且可以确认他们完成了这项工作。

如果这些是有用的建议,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.