资源描述:
《c#导出excel后关闭进程(excel.exe)释放资源的解决方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案2009年2月3日[9,330views]发表评论阅读评论一年前,从网上找到一些C#导出MSExcel的例子,但是都不能彻底销毁其所创建的Excel进程,典型的就是进程中的EXCEL.EXE不能关掉。网上的解决方案大部分是kill掉所有的Excel进程,偶一直感觉不爽。最近,做了几个月的WinForm,接触了一些进程、句柄方面的知识。于是试着解决一下,没想到成功了,创建的Excel进程被成功Kill掉了,而其它Excel进程则相安无事。关键代码:publicvo
2、idKillSpecialExcel() { try { if(m_objExcel!=null) { intlpdwProcessId; GetWindowThreadProcessId(newIntPtr(m_objExcel.Hwnd),outlpdwProcessId); System.Di
3、agnostics.Process.GetProcessById(lpdwProcessId).Kill(); } } catch(Exceptionex) { Console.WriteLine("DeleteExcelProcessError:"+ex.Message); } }操作生成Excel的全部代码:usingSystem;usingSystem.Colle
4、ctions.Generic;usingSystem.Text;usingSystem.Reflection;usingSystem.Runtime.InteropServices;usingSystem.Drawing; namespaceVeryCodes.Common.MyExcel{ /// ///ExcelClass的摘要说明。 /// publicclassMSExcel { /// ///构建ExcelClass类 /// pub
5、licMSExcel() { //别忘了需要添加ExcelLibrary的引用 this.m_objExcel=newMicrosoft.Office.Interop.Excel.Application(); } /// ///构建ExcelClass类 /// ///Excel.Application publicMSExcel(Microsoft.Office.Interop.Exce
6、l.ApplicationobjExcel) { this.m_objExcel=objExcel; } /// ///列标号,Excel最大列数是256 /// privatestring[]ALists=newstring[]{ "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","
7、V","W","X","Y","Z", "AA","AB","AC","AD","AE","AF","AG","AH","AI","AJ","AK","AL","AM","AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX","AY","AZ", "BA","BB","BC","BD","BE","BF","BG","BH","BI","BJ","BK","BL","BM","BN","BO","BP","BQ","BR","BS"
8、,"BT","BU","BV","BW","BX","BY","BZ", "CA","CB","CC","CD","CE","CF","CG","CH","CI","CJ","CK","CL","CM","CN","CO","CP","CQ