ASP.NET excel导出 excel.exe进程关闭 !经典写法。绝对实用。
2009-07-28 17:45
597 查看
思路: 最先获取进程里的所有Excel.exe进程 当后台实例化一个Excel。exe 后 在次获取进程里的所有Excel.exe 在做比较获取Pid 多出的那个就是 刚刚开启的。
列:
//获取Excel进程
Process[] P0, P1;
P0 = Process.GetProcessesByName("Excel");
Application xlApp = new ApplicationClass();
int I, J;
P1 = Process.GetProcessesByName("Excel");
// 比较前后 多出的Excel.exe 的pid
I = 0;
if (P1.Length > 1)
{
for (I = 0; I < P1.Length; I++)
{
for (J = 0; J < P0.Length; J++)
{
if (P0[J].Id == P1[I].Id)
{
break;
}
}
if (J == P0.Length) break;
}
}
Process P = P1[I];
//关闭进程
xlBook.Close(false, Type.Missing, Type.Missing);
xlApp.Workbooks.Close();
//xlApp.Application.Quit();
if(ws!=null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
ws = null;
}
if (xlBook != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook);
xlBook = null;
}
if (xlApp != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlApp = null;
}
if (P.ToString() != "")
{
P.Kill();
}
GC.Collect();
列:
//获取Excel进程
Process[] P0, P1;
P0 = Process.GetProcessesByName("Excel");
Application xlApp = new ApplicationClass();
int I, J;
P1 = Process.GetProcessesByName("Excel");
// 比较前后 多出的Excel.exe 的pid
I = 0;
if (P1.Length > 1)
{
for (I = 0; I < P1.Length; I++)
{
for (J = 0; J < P0.Length; J++)
{
if (P0[J].Id == P1[I].Id)
{
break;
}
}
if (J == P0.Length) break;
}
}
Process P = P1[I];
//关闭进程
xlBook.Close(false, Type.Missing, Type.Missing);
xlApp.Workbooks.Close();
//xlApp.Application.Quit();
if(ws!=null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
ws = null;
}
if (xlBook != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook);
xlBook = null;
}
if (xlApp != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlApp = null;
}
if (P.ToString() != "")
{
P.Kill();
}
GC.Collect();
相关文章推荐
- ASP.NET导出Excel并将Excel进程关闭 (根据进程ID)
- VB.NET 调用Excel 不能关闭 Excel.exe 进程的问题
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- asp.net导出数据到Excel的方法(完全无组件,不用调用Excel.exe)
- Asp.net 中导出excel后终止进程的解决办法
- 在asp.net中操作excel如何关闭excel的进程
- asp.net导出数据到Excel的方法(完全无组件,不用调用Excel.exe)
- C#和Asp.net下调用Excel后无法自动关闭进程的解决方法
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- asp.net 操作服务器Excel后,关闭服务器Excel进程有效方法
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- asp.net导出数据到Excel的方法(完全无组件,不用调用Excel.exe)
- VB.NET 调用Excel 不能关闭 Excel.exe 进程的问题
- 在asp.net中操作excel如何关闭excel的进程
- asp.net导出Excel文件之方法比较
- ASP.NET常用导出Excel方法汇总
- ASP.NET datable导出excel
- 将ASP.NET页面内的数据导出到Excel 或 Word中 (转)
- Asp.net导出Excel(一)