zoukankan      html  css  js  c++  java
  • 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操作的话,你就可以不用写这个函数了,只是在整个函数体中进行创建和释放。

  • 相关阅读:
    oracle维护表空间和数据文件
    IOS 应用的架构解析
    html5之拖放简单效果
    跟Google学习Android开发-起始篇-与其它应用程序交互(1)
    淘宝服务市场 淘宝订单同步方案
    论文阅读笔记
    页面爬虫(获取其他页面HTML)加载到自己页面
    由href return false 来看阻止默认事件
    Delete it
    Mac上利用Eclipse编译Cocos2d-x
  • 原文地址:https://www.cnblogs.com/ooip/p/7145306.html
Copyright © 2011-2022 走看看