excel.Quit();
excel=null;
GC.Collect();
另:没有检查你的代码,如果你的代码有错误,那么仍会出现excel进程不能关闭,请重启动计算机,保证代码无误后再运行程序。
excel=null;
GC.Collect();
另:没有检查你的代码,如果你的代码有错误,那么仍会出现excel进程不能关闭,请重启动计算机,保证代码无误后再运行程序。
解决方案 »
- 大家学习asp.net一般都拿什么程序学的?共享下!
- 仿百度文库、遇到的一些问题?
- ===== System.IO.File.AppendAllText 多线程下有点不靠谱 啊,====
- c#中返回table与list集合有什么区别,请高手讲解详细一点,标题要长。。。。
- 在aa.html中<table> <script src="33.js?id=2"></script></table> 这个33.js 如何获取这个id=2
- RequiredFieldValidator控件问题
- treeview问题?高分
- 一个初学者的幼稚问题
- 请问:如何读取放在datagrid里的dropdownlist的值??!!高分求助!!
- 多个工程之间传不了session,WHY?????
- 写系统日志出错,权限不够??
- WEB应用程序必须建立在wwwroot下吗?
PRB: Office Application Does Not Quit After Automation from Visual Studio .NET Client
http://support.microsoft.com/default.aspx?scid=kb;EN-US;317109
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel)仍然不能清除服务器端的资源
下面是一段经过测试无误的代码
Excel.Application oExcel;
Excel.Workbook oBook;
Object oMissing = System.Reflection.Missing.Value;
oExcel = new Excel.Application();
oBook = oExcel.Workbooks.Add(oMissing);
for (int i=1;i<=4;i++)
{
oExcel.Cells[i,5]=i.ToString();
oExcel.Cells[i,6]="我们来看看";
oExcel.Cells[i,7]="'10000E0000001";
oExcel.Cells[i,8]="10000E0000001";
}
Sheets sheets = oBook.Worksheets;
_Worksheet worksheet = (_Worksheet) sheets.get_Item(1);
oBook.Saved = true;
oExcel.UserControl = false;
worksheet.SaveAs("c:\\books1234.xls",oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing, oMissing,oMissing);
oExcel.Quit();
oMissing=null;
sheets=null;
worksheet=null;
oBook=null;
oExcel=null;
GC.Collect ();
public void CreateExcel(DataView dv)
{
Excel.Application excel;
Excel.Workbook book;
object oMissing =System.Reflection.Missing.Value; excel =new Excel.ApplicationClass();//此处可能是2000和XP的不同
book =excel.Workbooks.Add(oMissing); int rowIndex =1;
int colIndex =0; foreach(DataColumn dc in dv.Table.Columns)
{
colIndex++;
excel.Cells[rowIndex,colIndex] =dc.ColumnName;
} foreach(DataRow row in dv.Table.Rows)
{
rowIndex++;
colIndex =0;
foreach(DataColumn dc in dv.Table.Columns)
{
colIndex ++;
excel.Cells[rowIndex,colIndex] = row[dc.ColumnName].ToString();
}
} Excel.Sheets sheets =book.Worksheets;
Excel._Worksheet worksheet =(Excel._Worksheet)sheets.get_Item(1);
book.Saved =true;
excel.UserControl =false; string path =@"C:\TEST.XLS";//Server.MapPath(".")+"\\qjfytj.xls"; worksheet.SaveAs(path,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing);
excel.Quit();
oMissing =null;
sheets =null;
worksheet =null;
book =null;
excel =null;
GC.Collect();
}如果是代码有问题的话应该生成Excel就出问题了,可是现在仅仅是资源无法释放
初用起来很是糟糕!不过在winform下总是很好的,同样的class,引入word or excel,可是在webform下,一切都不一样,一个对象生成了,在对象释放掉之后,word,excel的进程确依然存在。本人单独写了一个class,来杀死此刻的进程,有谁需要的,请mail:[email protected]