C#生成Excel文件后彻底解除占用代码(来着CSDN)

http://bbs.csdn.net/topics/280078428

jy251

LS说KILL进程的朋友们···我说。。。你们真行!!!如果用户是administrator还行,如果不是怎么办??你是没有权限KILL滴!!!

C# code
 
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
object  objmissing = System.Reflection.Missing.Value;
 
Excel.ApplicationClass application =  new  ApplicationClass();
Excel.Workbook book = application.Workbooks.Add(objmissing);
Excel.Worksheet sheet = (Excel.Worksheet)book.Worksheets.Add(objmissing,objmissing,objmissing,objmissing);
 
//操作过程 ^&%&×&……&%&&……
 
//释放
sheet.SaveAs(path,objmissing,objmissing,objmissing,objmissing,objmissing,objmissing,objmissing,objmissing);
System.Runtime.InteropServices.Marshal.ReleaseComObject(( object )sheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(( object )book);
application.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(( object )application);
System.GC.Collect();



有一点,在网上你是找不到滴···纯属经验:
如果你要写的Excel是多个Sheet的话,那么你最好写个函数:
比如 private bool overdue_report_sub(Excel.Worksheet sheet)
将sheet的对象传进去,在这个函数中进行操作,函数过程只写Sheet的操作过程,释放还是放在外面。如果你不这样做的话,那么,恭喜你,你还是释放不掉。但是如果只有一个Sheet操作的话,你就可以不用写这个函数了,只是在整个函数体中进行创建和释放。

转载于:https://www.cnblogs.com/ooip/p/7145306.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值