我的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之后,进程仍保持打开状态。有什么建议吗?
答案 0 :(得分:0)
过去,我经历过类似的噩梦,当时服务器应用程序将这些excel.exe实例抛在了后面。
我个人解决此问题的方法是使用Windows计划作业来执行一个批处理文件,该批处理文件在合理的时间间隔内使用 TASKKILL / IM Excel 命令-不太优雅,但它使我们脱离了某些限制热水。
如果您不习惯2007年前的excel(xls)格式,建议您看看出色的(无双关语) ExcelDataReader 和可选的 ExcelDataReader。数据集 nuget软件包-非常出色,非常适合免费商业使用。
有一个简短的教程(用c#编写)here,用vb重写不需要太多。
如果您现在还不能移至xlsx,并且它的数据超过了您感兴趣的格式,那么您可能想查看Josh Close的 CSVHelper Nuget软件包。
我已经很轻松地使用了这两种方法,并且可以确认它们能完成工作。
让我知道这些建议是否有用。