【另开贴】asp.net生成标准Excel后如何关闭因此而启动的EXCEL进程

wangchao1982 2010-07-28 04:13:48
原帖:http://topic.csdn.net/u/20100723/11/32af5b7c-a43d-4243-a522-6d631e76d2ed.html
系统环境XP-CN SP3
开发环境:vs2005
开发语言:C#
Excel:2003
源代码:http://download.csdn.net/source/2580312
(。。。。第一次上传不知道只能传文件不能删文件,其实内容很小,就是bmp说明图片太大了)
注意一定是要发布到IIS上面,然后再看是否能杀掉EXCEL进程

我贴上的测试代码只支持xml配置文件+excel模板的固定表头导出(动态表头+动态xml配置文件的没上传。嘿嘿)
理论上不用改直接用VS运行不会有问题(前提是需要安装office2003/office2007)

如果发布到iis上遇到“提示DCOM组件权限”的问题可以找到“管理工具”打开“组件服务”,在“组件服务”弹出框中点击“组件服务”--“计算机”--“我的电脑”--“DCOM”配置,找到“Microsoft Excel Application”右键-属性,然后点击“安全”选项卡,把“启动和激活权限”“访问权限”“配置权限”全选择“自定义”然后把各自的编辑中都加入“everyone”这个角色,然后“允许”Everyone的所有权限
上面解决dcom组件权限的方法仅仅是为了测试用,如果是发布真实的应用切勿按照此方法操作,切记!切记!
...全文
164 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
BrillianZhang 2010-10-26
  • 打赏
  • 举报
回复
http://www.cnblogs.com/xjfhnsd/archive/2010/04/30/1725358.html

经过测试,没有问题
我们通常将excel导出写在新的方法或新的类中(强烈推荐写在新的类中),而这个方法会一直存在你的内存中知道该类被释放,所以,在使用新类调用后,再调用一遍垃圾回收,会释放该类的所有使用资源,包括这个excel进程
wangchao1982 2010-07-30
  • 打赏
  • 举报
回复
难道就没人关心这个问题?
wangchao1982 2010-07-29
  • 打赏
  • 举报
回复
完了,没人看了。难道都是直接输出html格式的报表?
wangchao1982 2010-07-28
  • 打赏
  • 举报
回复
谢谢各位帮顶的兄弟。呵呵
1)这个是肯定不可以的。

TheExcelApp.Quit();
//computerfox


2)这个会遇到权限问题,大致的提示是“核心进程”之类的,原因是发布到IIS上的网站和在VS下直接运行的网站所具有的权限是不一样的,不能随便访问进程列表进而操作响应的进程(试想一下,如果这样干可以的话,那些网站服务器提供商还不得哭死啊)。
[Quote=引用 7 楼 guyehanxinlei 的回复:]
GC.回收如果都不起作用的话,可以在启Excel时记录一个时间,关闭时判断进程是否在这段时间内即可.
[/Quote]

各位兄弟,如果你们真的有心要帮我的话,一定要把测试代码部署到IIS上,然后再说你的解决办法是否管用。
不过还是谢谢了
guyehanxinlei 2010-07-28
  • 打赏
  • 举报
回复
.Quit()

GC.回收如果都不起作用的话,可以在启Excel时记录一个时间,关闭时判断进程是否在这段时间内即可.
捷哥1999 2010-07-28
  • 打赏
  • 举报
回复
private Excel.Application TheExcelApp;
TheExcelApp.Quit();
Rock870210 2010-07-28
  • 打赏
  • 举报
回复
干嘛的?Mark!
wwfgu00ing 2010-07-28
  • 打赏
  • 举报
回复
恩,帮顶
myhope88 2010-07-28
  • 打赏
  • 举报
回复
路过,来瞧瞧,学习下
dreamzaku 2010-07-28
  • 打赏
  • 举报
回复
接点分
Canny 2010-07-28
  • 打赏
  • 举报
回复
来看看,不知道是什么,

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧