我做项目对Excel进程处理问题

王朝other·作者佚名  2008-10-25
宽屏版  字体: |||超大  

从我进公司开始做项目起,就少不了对Excel文件的处理,几乎都要用到对Excel文件的导入导出,第一个项目用到的导出是用DTS写的,因为是微软自己的导出工具所以就不存在很多人碰见的Excel进程问题,但是我第二个项目所有报表导出都要导成Excel文件,那么就发现存在大家常常碰见的现象就是进程中有很多的Excel.EXE,并且时常导致系统无法继续生成Excel文件问题。

通过网上查阅一些资料,加上自己对各种方法的试验,写下我对Excel进程处理的一些经验(为什么是经验而不是代码呢?)

1. 不要太在意进程中有一些Excel.EXE,有时候并不影响生成Excel文件,既然这样又何必太在意呢。

2. 首先操作系统我推荐用windows2003 而不是windows20000 感觉2003做了些处理,我的项目在2003跑的时候从没出现过不能生成Excel文件的问题,而2000就经常接到客户的投诉。

3. 操作系统安装Office时,我装的是Office2003版本,记住要选择应用程序的高级自定义。然后最好把每个节点下面的.net可编程性支持选择安装。

4. 你项目中生成Excel文件的代码一定不要有逻辑BUG,就是那种导致某个Excel对象出现异常,进而导致某次Excel文件生成失败,代码最后按照网上通常说的对用到的Excel对象逐个释放。当然代码最后加个GC.collect() 也可以。

5. 一般来说我的项目就没出现过Excel文件生成不了的问题,不过我还是怕万一,所以就写了个windows服务程序,定时扫描进程,并杀掉进程开始时间距离当前时间5分钟前的Excel进程,这样基本不会误杀正在处理的Excel进程。

6. 我在web项目中对Excel对象仅仅是释放,没有用到Process.Kill() 这个方法,因为我目前看法是asp.net用户的权限不够,无法使用上面的方法,在winform下面到可以使用该方法。

上面是我个人总结的经验,拿出来和大家分享一下,另外我的博客文章都是原创的,如果转载请注明出处:http://www.cnblogs.com/hustsay23/archive/2008/10/19/1314389.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有