Excel进程关闭的疑惑。

bluebinbin 2004-11-15 09:27:05
在web上,当我打开一个excel文件bookwork.open之后,进程里有个“EXCEL”再开一个,又有一个,从此我就没有办法将它关闭。看了许多帖子,问题依然没有解决,希望有人解我疑惑。
...全文
283 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluebinbin 2004-11-17
  • 打赏
  • 举报
回复
我不知道你们是不是有试过进程强行杀死,结果将是我上面贴的错误,“拒绝访问”

有人说对ASPNET用户赋予administrators权限,这样做我能放心么?我还没有试行不行,但这一定不是解决方法。

有没有人再帮帮我。
kenMoxi 2004-11-17
  • 打赏
  • 举报
回复
或者直接KILL掉Excel的进程
protected void KillExcel()
{
foreach(Process process in System.Diagnostics.Process.GetProcesses())
{
if (process.ProcessName.ToUpper().Equals("EXCEL"))
process.Kill();

}
}
kenMoxi 2004-11-17
  • 打赏
  • 举报
回复
这个不太好释放干净,主要看finally里面的写法
Excel.Application excel = null;
Excel.Workbooks wbs = null;
Excel.Workbook wb = null;
Excel.Worksheet ws = null;
Excel.Range range1 = null;
object Nothing = System.Reflection.Missing.Value;

try
{
...
}
finally
{
if (excel != null)
{
if (wbs != null)
{
if (wb != null)
{
if (ws != null)
{
if (range1 != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(range1);
range1 = null;
}

System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
ws = null;
}
wb.Close(false,Nothing,Nothing);

System.Runtime.InteropServices.Marshal.ReleaseComObject(wb);
wb = null;
}
wbs.Close();

System.Runtime.InteropServices.Marshal.ReleaseComObject(wbs);
wbs = null;
}
excel.Application.Workbooks.Close();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;
GC.Collect();
}
}

xiaoslong 2004-11-17
  • 打赏
  • 举报
回复
帮你顶!
cxyPioneer 2004-11-17
  • 打赏
  • 举报
回复
直接从进程列表中把把它中止掉
bluebinbin 2004-11-17
  • 打赏
  • 举报
回复
再顶一下,真的很无奈。
bluebinbin 2004-11-16
  • 打赏
  • 举报
回复
有人能帮忙看看怎么办么?
Tomgus 2004-11-16
  • 打赏
  • 举报
回复
private void KillProcess(string processName)
{
System.Diagnostics.Process myproc= new System.Diagnostics.Process();
//得到所有打开的进程
try{
foreach (Process thisproc in Process.GetProcessesByName(processName)) {
if(!thisproc.CloseMainWindow()){
thisproc.Kill();
}
}
}
catch(Exception Exc)
{
msg.Text+= "杀死" + processName + "失败!";
}
}
cpio 2004-11-16
  • 打赏
  • 举报
回复
有Quit()方法吧,你用了吗

sunyou 2004-11-16
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3347/3347007.xml?temp=.7992517
bluebinbin 2004-11-15
  • 打赏
  • 举报
回复
行 38 出错
bluebinbin 2004-11-15
  • 打赏
  • 举报
回复
拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ComponentModel.Win32Exception: 拒绝访问。

源错误:


行 36: int begpos;
行 37: int endpos;
行 38: foreach (Process thisProc in System.Diagnostics.Process.GetProcesses()) {
行 39: tempName=thisProc.ToString();
行 40: begpos = tempName.IndexOf("(")+1;

trnbo 2004-11-15
  • 打赏
  • 举报
回复
强制垃圾回收……
Eddie005 2004-11-15
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=299D1529-59A3-42F9-77A7-7BF353754FEA
Lisbi 2004-11-15
  • 打赏
  • 举报
回复

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧