问题描述
自己之前一直被这个问题困扰,也在网上找了很多资料,大部分都是用杀死进程的方法来解决,个人觉得这个太影响代码美观了.今天偶然发现了解决办法.给大家共享一下.现象:我在C#中,需要从EXCEL导入或者导出数据,当导入导出结束后,使用excelApp.Quit()关闭EXCEL对象,但系统进程中仍然存在EXCEL进程.并没有关闭.原因:其实excelApp.Quit();方法是可以正确的释放EXCEL进程的,我们导入导出EXCEL时,普遍方法是代码后台处理,前台并隐藏EXCEL界面,也就是excelApp.Visible=false(这是默认值,不设置的话也是False),当调用excelApp.Quit()时,EXCELE会弹出个对话框,问你是否保存,而excelApp.Visible=false时,保存对话框也一并隐藏掉了,所以EXCEL卡在了这个地方,造成了EXCEL不能正常释放进程.解决方法:设置excelApp.DisplayAlerts=false,就是不提问任何提示,这样再关闭EXCEL对象时,就不会有保存提示,也就不会卡住了.
解决方案
解决方案二:
客户使用的是你的功能,又不会看你的代码。
解决方案三:
很好,学习了.不过现在有NPOI了,不依赖OFFICE版本,兼容32位和64位,还是抛弃EXCEL.DLL吧.
解决方案四:
如果你真的搜索你会发现.这个东西根本无解..而且几乎没这么干的使用excel对象..所以我们大家都在用
解决方案五:
引用3楼diaodiaop的回复:
如果你真的搜索你会发现.这个东西根本无解..而且几乎没这么干的使用excel对象..所以我们大家都在用
你这个链接被我转载许多次了...现在下载次数多少了?
解决方案六:
引用楼主SmallBoyz的回复:
解决方法:设置excelApp.DisplayAlerts=false,就是不提问任何提示,这样再关闭EXCEL对象时,就不会有保存提示,也就不会卡住了.
谢谢分享,
解决方案七:
引用4楼Z65443344的回复:
你这个链接被我转载许多次了...现在下载次数多少了?
下载次数:203没办法,还是有很人上百度搜索使用office组件..而且从来不搜索..还一直问问问问问...最近也有很多.不搜索上来就问的..还有doc的不如你去玩个aspose.word那个东西吧
解决方案八:
引用4楼Z65443344的回复:
现在下载次数多少了?
好腻害排名都900多了...
解决方案九:
引用6楼diaodiaop的回复:
不如你去玩个aspose.word那个东西吧
等我下次需要导出WORD的时候,一定用aspose.word目前还是导出EXCEL的居多
解决方案十:
引用3楼diaodiaop的回复:
如果你真的搜索你会发现.这个东西根本无解..而且几乎没这么干的使用excel对象..所以我们大家都在用
感谢你的回复,我正在看NPOI的资料.我们公司有要求,1第三方的东西不可以用,2导出都是复杂格式(类似复杂报表),需要使用模板,以及非常多的代码来控制数据写入EXCEL格的位置,并且格式化,颜色,外框都要处理.上个项目还是动态计算Cell位置.并非只是普通的数据导出.
解决方案十一:
坚持使用EXCEL.DLL,就要有忍受用户各种抱怨的觉悟哦。
解决方案十二:
说到底,vba仅仅是一种客户端技术。它根本不适合服务器那样长期稳定地运行。
解决方案十三:
引用9楼SmallBoyz的回复:
Quote: 引用3楼diaodiaop的回复:
如果你真的搜索你会发现.这个东西根本无解..而且几乎没这么干的使用excel对象..所以我们大家都在用感谢你的回复,我正在看NPOI的资料.我们公司有要求,1第三方的东西不可以用,2导出都是复杂格式(类似复杂报表),需要使用模板,以及非常多的代码来控制数据写入EXCEL格的位置,并且格式化,颜色,外框都要处理.上个项目还是动态计算Cell位置.并非只是普通的数据导出.
1.难道office不属于第三方的东西?所谓第三方的东西不可以用,你只能自己破解excel的格式,然后直接处理文件流了2.复杂格式,NPOI可以实现
解决方案十四:
还是先正确理解一下公司的要求,到底什么东西不可以用,是否是第三方的付费软件的破解版不能用,要么使用正版付费软件,要么使用开源免费软件不可能什么第三方的都不能用吧系统自带的dll难道就不是第三方软件了?
解决方案十五:
用openxml或者npoi
解决方案:
说明你代码习惯不好,操作office要先关闭工作簿,再关闭application。closeworkbookfalse不存盘退出
解决方案:
引用9楼SmallBoyz的回复:
Quote: 引用3楼diaodiaop的回复:
如果你真的搜索你会发现.这个东西根本无解..而且几乎没这么干的使用excel对象..所以我们大家都在用感谢你的回复,我正在看NPOI的资料.我们公司有要求,1第三方的东西不可以用,2导出都是复杂格式(类似复杂报表),需要使用模板,以及非常多的代码来控制数据写入EXCEL格的位置,并且格式化,颜色,外框都要处理.上个项目还是动态计算Cell位置.并非只是普通的数据导出.
你们服务器上的office难道是正版?
解决方案:
引用16楼yuwenge的回复:
你们服务器上的office难道是正版?
你应该先问:你们服务器的操作系统难道是正版?