asp.net中如何关闭Excel进程
我用C#写了一个程序,用Excel.ApplicationClass把一个DataTable导出成一个Excel文件。
如果是Windows Form项目,每次导出Excel文件,则需要把该项目关掉才能打开该Excel文件;如果是Asp.Net的项目,每次导出Excel文件,则需重启电脑才能打开该Excel 文件。
我发现每次执行程序,就多了一个Excel的进程,须把次进程关掉才能打开Excel文件,请教高手如何关闭此进程(或其他方法)。方法:public void DestoryExcel()
{
oBook.Close( false, null, null );
oExcel.Workbooks.Close();
oExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject( oRange );
System.Runtime.InteropServices.Marshal.ReleaseComObject( oWorkSheet );
System.Runtime.InteropServices.Marshal.ReleaseComObject( oSheet );
System.Runtime.InteropServices.Marshal.ReleaseComObject( oBook );
System.Runtime.InteropServices.Marshal.ReleaseComObject( oExcel );
oRange = null;
oWorkSheet = null;
oSheet = null;
oBook = null;
oMissing = null;
oExcel = null;
GC.Collect();
}
我用C#写了一个程序,用Excel.ApplicationClass把一个DataTable导出成一个Excel文件。
如果是Windows Form项目,每次导出Excel文件,则需要把该项目关掉才能打开该Excel文件;如果是Asp.Net的项目,每次导出Excel文件,则需重启电脑才能打开该Excel 文件。
我发现每次执行程序,就多了一个Excel的进程,须把次进程关掉才能打开Excel文件,请教高手如何关闭此进程(或其他方法)。方法:public void DestoryExcel()
{
oBook.Close( false, null, null );
oExcel.Workbooks.Close();
oExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject( oRange );
System.Runtime.InteropServices.Marshal.ReleaseComObject( oWorkSheet );
System.Runtime.InteropServices.Marshal.ReleaseComObject( oSheet );
System.Runtime.InteropServices.Marshal.ReleaseComObject( oBook );
System.Runtime.InteropServices.Marshal.ReleaseComObject( oExcel );
oRange = null;
oWorkSheet = null;
oSheet = null;
oBook = null;
oMissing = null;
oExcel = null;
GC.Collect();
}
怎么让服务器端只用这一个实例响应,而不是同时多人调用的时候每个人都在服务器产生一个eApp