关闭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();
}
}
}
{
...........
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方法。
}