您的位置:首页 > 其它

使用windows操作EXCEL如何关闭EXCEL进程

2015-10-26 11:11 423 查看
经常项目上有导入excel的需求,其实导入一个固定格式的excel数据非常容易,但是,发现一个问题就是,导入excel后,用户在打开excel时,必须要打开2次才能打开excel,这让人很不爽;开始查找原因:excel的进程关闭不了,资源不能释放,于是就想尽办法释放com对象excel实例;

public Excel.Application app; //Excel对象
public Excel.Workbooks wbs; //工作簿集
public Excel.Workbook wb; //工作簿
public Excel.Worksheets wss; //工作表集
public Excel.Worksheet ws; //工作表集

wb.Close(Type.Missing, Type.Missing, Type.Missing);
wbs.Close();
app.Quit();

wb = null;
wbs = null;
app = null;
GC.Collect();

这样并不能关闭EXCEL进程;

解决方法:

[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);

IntPtr t = new IntPtr(app.Hwnd); //杀死进程的好方法,很有效
int k = 0;
GetWindowThreadProcessId(t, out k);
System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
p.Kill();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: