C#调用Excel与附加代码

看了C#调用Excel之后,无意中想起2年前做的一个小项目,自己也遇到过Excel的进程无法结束掉的这种怪问题,最终还是解决了,其实解决的原理很简单,Excel是一个很特殊的东西,所有对它的操作都是独占的,因此就有必要在资源释放上严格进行。为了更好的跟大家交流,也同时帮助那些正在被困惑的程序员朋友们,下面就在C#调用Excel附上我以前的一段小代码,为了能够更快更容易说明问题,代码经过了删减,只保存了结构的完整性,但不保证能够顺利编译通过,代码如下:

 
 
 
  1. using Execl = Microsoft.Office.Interop.Excel;  
  2. try  
  3. {  
  4. Microsoft.Office.Interop.Excel.Application excel = 
    new Microsoft.Office.Interop.Excel.Application();  
  5. Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open
    (lujing2, System.Type.Missing, false, System.Type.Missing, System.Type.
    Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, 
    System.Type.Missing, System.Type.Missing, System.Type.Missing, System.
    Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);  
  6. excel.Visible = true;  
  7. Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.
    Interop.Excel.Worksheet)workbook.Worksheets.get_Item  
  8. //开始执行Excel操作  
  9.  
  10. if (excel.ActiveWorkbook.Saved == false)  
  11. {  
  12. excel.ActiveWorkbook.Save();  
  13. }  
  14. excel.Quit();  
  15. excel = null;  
  16. Application.Exit();  
  17. GC.Collect(System.GC.GetGeneration(worksheet));  
  18. GC.Collect(System.GC.GetGeneration(workbook));  
  19. GC.Collect(System.GC.GetGeneration(excel));  
  20. }  
  21. catch  
  22. {  
  23.  
  24. }  
  25. finally  
  26. {  
  27. GC.Collect();  

同时,这里有一个比较有争议的问题,我特此声明下:微软强烈建议不要通过GC.Collect方法来强制执行垃圾手机,因为那会妨碍GC本身的工作方式。只有在明确知道有大量对象停止引用时,

才考虑使用GC.Collect方法来调用收集器,以上介绍C#调用Excel

【编辑推荐】

  1. 浅谈C#中构造函数和成员函数
  2. C#函数的参数返回结构数组
  3. 概述ASP.NET中的NGWS Runtime
  4. C#函数与JavaScript函数
  5. 详解C# Object.Equals函数

网站标题:C#调用Excel与附加代码
网站地址:http://www.shufengxianlan.com/qtweb/news9/337409.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联