C#如何结束EXCEL进程

我用using ( Microsoft.InterOp.Office.Excel.ApplicationClass excel = new Microsoft.InterOp.Office.Excel.ApplicationClass())
{
..........代码
}
无法释放Excel进程,按理说using()内的所有对象都会被回收的。

第1个回答  2012-06-05
Excel不是托管代码,试试用

#region 结束EXCEL.EXE进程的方法
/// <summary>
/// 结束EXCEL.EXE进程的方法
/// </summary>
/// <param name="m_objExcel">EXCEL对象</param>
[DllImport("user32.dll", SetLastError = true)]
static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);

public void KillSpecialExcel(Microsoft.Office.Interop.Excel.Application m_objExcel)
{
try
{
if (m_objExcel != null)
{
int lpdwProcessId;
GetWindowThreadProcessId(new IntPtr(m_objExcel.Hwnd), out lpdwProcessId);

System.Diagnostics.Process.GetProcessById(lpdwProcessId).Kill();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
#endregion
第2个回答  2012-06-05
这个可以删掉
System.Diagnostics.Process[] process=System.Diagnostics.Process.GetProcessesByName("Excel");
foreach (System.Diagnostics.Process p in process)
{
if (!string.IsNullOrEmpty(ProName))
{
try
{
p.Kill();
}
catch { }
}
}本回答被提问者采纳
第3个回答  2012-06-05
还没做过
第4个回答  2012-06-05
没遇到

c# 怎么关闭Excel
(1)如果是直接用Excel创建一个新实例,然后用Show()来打开,那就用Close()关闭;(2)如果是以进程的方式打开Excel这个程序,那么直接按Excel本身右上角的关闭按钮关闭就行;(3)如果是嵌入到WinForm的话,可以用一下方法Excel.Application oApp; \/\/Excel的实例名Excel.Workbooks oBooks; Excel.Workbook ...

c# 怎么关闭Excel
(2)如果是以进程的方式打开Excel这个程序,那么直接按Excel本身右上角的关闭按钮关闭就行;(3)如果是嵌入到WinForm的话,可以用一下方法Excel.Application oApp; \/\/Excel的实例名Excel.Workbooks oBooks;Excel.Workbook oBook;Excel.Worksheet oSheet; \/\/Excel实例下的工作表private void ExcelExit(){NAR...

c#如何关闭Excel进程
GC.WaitForPendingFinalizers();}方法2:引用下面命名空间using System.Runtime.InteropServices;using System.Diagnostics;#region 关闭Excel进程[DllImport("User32.dll", CharSet = CharSet.Auto)]\/\/这个函数有两个参数,第一个参数是窗口句柄 由FindWindow获取,第二个参数是存放进程ID的变量。例如:\/\/...

c#中杀死Excel进程
region 杀死进程 private void KillProcess(string processName){ \/\/获得进程对象,以用来操作 System.Diagnostics.Process myproc = new System.Diagnostics.Process();\/\/得到所有打开的进程 try { Process[] pros = Process.GetProcesses();\/\/获得需要杀死的进程名 foreach (Process thisproc in pros)...

C#创建完Excel后,这个关闭进程的操作是干嘛的?
因为你是调用的excel来生成的和保存的文件,所以在用完后需要杀死excel的进程,否则你这段代码每执行一次,任务管理器中就会多出一个excel.exe。所以这段代码放在你在使用完excel之后执行就可以了。

c# 导出数据到Excel程序关闭后 进程中有个EXCEL进程怎么自动关闭_百度...
1、应该有个application实例,请销毁 2、如果实在不行,就用进程杀一下

求助:子程序调用EXCEL,运行后释放,EXCEL进程还是没有释放掉,只有在主程...
用C#为例子:调用后立即使用GC回收它就可以。OpenNewExcelApp();GC.Collect();OpenNewExcelApp();{ Excel.ApplicationClass exec= new Excel.ApplicationClass();exec.Visible = true ;try { 你的代码区 } catch(Exception E){ MessageBox.Show(E.Message);} finally { if(exe...

c# 怎么关闭Excel
FileStream fs=new FileStream("C:|\\aaa.xls"); fs.close();

xwilngs不会关闭excel后台进程?
所以就把上次Excel进程关闭掉了, 但是本次的Excel进程始终存在. 如果把GC.Collect()这个方法写在调用Excel的方法外面, 就可以正确关闭了.MSDN中关于这个方法的说明 GC.Collect 方法 () [C#]强制对所有代进行垃圾回收。[C#]public static void Collect();使用此方法尝试回收所有无法访问的内存。然而,...

C# 如何结束指定进程
你出于什么目的要运行EXCEL,如果仅仅只是为了读写xls\/xlsx或者其它office内容,我们一般都是用NPOI的,一个dll就够了,完全不需要安装office

相似回答