关闭Excel报表

public class OperatorExcel: IDisposable
{
    ...........

        public void Dispose()
    {
            try
            {
                m_oBooks = null;
                m_oBook = null;
                m_oSheet = null;
                m_oRange = null;
                if(m_oExcelApp != null)
                {
                    m_oExcelApp.Quit();
                    m_oExcelApp = null;
                }
            }
            finally
            {
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }
    }

 

 


1. 创建Excel application
private Microsoft.office.Interop.Excel.Application appExcel;

appExcel = new Microsoft.office.Interop.Excel.ApplicationClass();

appExcel.Visible = false;
2. 实现IDisposable
GC.SuppressFinalize(this);
appExcel.Quit();
//释放COM组件,其实就是将其引用计数减1
System.Runtime.InteropServices.Marshal.ReleaseComObject(appExcel);
**关键代码
GC.Collect();
3. 注意,最后一定要手动调用Dispose方法。

 

 

 

 

 

}

posted @ 2012-05-22 22:14  风清水远  阅读(237)  评论(0编辑  收藏  举报