oExcel.Quit();
//清除对象
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWorksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWorkbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);
oWorkbook=null;
oExcel=null;
System.GC.Collect();===============
差不多了。
//清除对象
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWorksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWorkbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);
oWorkbook=null;
oExcel=null;
System.GC.Collect();===============
差不多了。
解决方案 »
- 股票网站数据获取
- 请教一下关于多线程的问题
- 怎样获得系统的默认字体(default font)?
- 用client.DownloadData下载页面会触发页面的JS脚本吗?
- Pocket Pc中SQL CE 2.0同步SQLSERVER2000的问题
- C#和C++哪好呀?
- .log文件写入 为什么写不进去,完了还是空的。
- 在c#开发的网站中,网站banner需要根据登陆者的所在的地区,显示不同的文字,banner是flash做的
- 怎么在DataSet中对DataTable增加一列,并且提交到Access数据库中(WINFORM)
- 我要疯了,救救我啊,各位兄弟!!!我他妈的有多少分送多少分!!!
- 请高手指教!
- 关于treeView 的问题!请指教!
我试过了,非常有效:)
Excel.Application.Quit
foreach(System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
{
if(p.ProcessName.ToUpper() == "EXCEL")
{
p.Kill();
}
}
http://support.microsoft.com/?id=317109
/// <summary>
/// 用于销毁Excel对象,并且实行强制垃圾回收
/// </summary>
private void ReleaseExcel(ref Excel.Application m_xlsExcelApp)
{ System.Runtime.InteropServices.Marshal.ReleaseComObject(m_xlsExcelApp);
m_xlsExcelApp=null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
需要的Excel进程也退出呢?
应该是可以做到分别退出的。
Excel.Application.Disconnect();
Excel.Application.Quitforeach(System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
{
if(p.ProcessName.ToUpper() == "EXCEL")
{
p.Kill();
}
}
xlApp.Quit();
xlApp=null;
xlBook=null;
xlSheet=null;
我试过了,非常有效:)
---------------------------------------------------
按照这个方法,确实可以正常退出,但是我觉得实现起来有困难
比如说:Range.Rows.count
这时候他认为Rows也是间接引用的,就退出不了进程,但是excel的对象模型里没有Rows object,他只是一个属性,我怎么去直接声明他呢