怎么关闭Excel进程

telankes2000 2009-09-04 11:02:44



private IntPtr GetProcessHandle
{
get { return (IntPtr)ViewState["ProcessHandle"]; }
set { ViewState["ProcessHandle"] = value; }
}

private int GetProcessID
{
get { return (int)ViewState["ProcessID"]; }
set { ViewState["ProcessID"] = value; }
}

protected void Button1_Click(object sender, EventArgs e)
{
Process process = Process.GetCurrentProcess();
process.StartInfo.FileName = Server.MapPath("wahaha/mp932.xls");
process.StartInfo.UseShellExecute = false;
process.Start();//当打开的Excel大于1个时 就报错 不是有效的win32程序
GetProcessHandle = process.Handle;
GetProcessID = process.Id;
}
private void KillPreocess(int processID)
{
Process p = Process.GetProcessById(processID);
p.Kill();
}
protected void Button2_Click(object sender, EventArgs e)
{
KillPreocess(GetProcessID);
}

问题是只能在打开一个Excel的情况下关闭进程
...全文
60 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjq 2009-09-04
  • 打赏
  • 举报
回复
导出excel貌似不应该用process来做吧。要么用COM要么用OLEDB。COM的话,释放掉所有资源后,应该可以关掉Excel进程。但往往也不work,折中办法记录下启动com组件的时间和结束时间。结束后在改时间段内启动的excel进程都杀掉。
wosizy 2009-09-04
  • 打赏
  • 举报
回复
用过NPOI没 这东西可以自懂关闭进程
telankes2000 2009-09-04
  • 打赏
  • 举报
回复
是导出Excel 目的是导出之后关闭Excel进程
gwf25sz 2009-09-04
  • 打赏
  • 举报
回复
-0-

Ctrl + Alt + Delete

进去找到了就能关了哈

^_^

是不是感觉被我当作白痴了???? 嘿嘿
wjq 2009-09-04
  • 打赏
  • 举报
回复
若若的问你一下……你在ASP.NET服务端打开Excel文档有啥用……?最终用户又不能操作……
柳晛 2009-09-04
  • 打赏
  • 举报
回复
            finally
{
workBooks.Close();
if (xlsApp != null)
{
xlsApp.Workbooks.Close();
xlsApp.Quit();

int gc = GC.GetGeneration(xlsApp);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsApp);
xlsApp = null;

GC.Collect(gc);
}
GC.Collect();
}
柳晛 2009-09-04
  • 打赏
  • 举报
回复
finally
{
workBooks.Close();
if (xlsApp != null)
{
xlsApp.Workbooks.Close();
xlsApp.Quit();

int gc = GC.GetGeneration(xlsApp);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsApp);
xlsApp = null;

GC.Collect(gc);
}
GC.Collect();
}

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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