excel进程无法关闭,急

cherry_j 2007-10-30 03:54:12
我的需求是打开Excel,修改后保存,以下功能正确
WorkBook.Saved = true;
WorkBook.SaveAs("c:\\test.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
WorkBook.Close(false, Type.Missing, Type.Missing);
excel.Workbooks.Close();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;

但问题是,如果修改到一半发现错误,我想取消保存Excel,并关闭进程,失败
我用如下代码,关闭返回,无效啊
WorkBook.Close(false, Type.Missing, Type.Missing);
excel.Workbooks.Close();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;

请问这种情况下如何强行关闭进程,并且不保存Excel啊
...全文
302 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dionix 2007-11-23
  • 打赏
  • 举报
回复
没有具体的作过,猜测是不是因为你修改了Execl的内容,Excel等待确认丢弃内容导致进程无法退出。

你看看又没有通知Excel放弃保存数据的方法或者表示数据变化的属性(例如Dirty), 想办法让Excel放弃之前的修改,也许就可以了。
glgzx 2007-11-23
  • 打赏
  • 举报
回复
d
cherry_j 2007-10-31
  • 打赏
  • 举报
回复
顶顶
cherry_j 2007-10-31
  • 打赏
  • 举报
回复
有更好的方法吗
Snoworld 2007-10-31
  • 打赏
  • 举报
回复
如果强制结束进程,只能是KILL
cherry_j 2007-10-31
  • 打赏
  • 举报
回复
楼上的做法会把所有EXCEL进程都杀了,会造成误杀
有更好的方法吗
waslee 2007-10-31
  • 打赏
  • 举报
回复
public void KillExcel()
{
System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcesses();
foreach (System.Diagnostics.Process p in ps)
{
if (p.ProcessName.ToLower().CompareTo("excel") == 0)
p.Kill();
}
}
wsj1983920 2007-10-31
  • 打赏
  • 举报
回复
顶下了
cherry_j 2007-10-31
  • 打赏
  • 举报
回复
再顶顶
cherry_j 2007-10-30
  • 打赏
  • 举报
回复
再顶顶
qgmzhfj 2007-10-30
  • 打赏
  • 举报
回复
帮顶。
这个问题我也遇到了,现在还没搞定 ,郁闷!

111,097

社区成员

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

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

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