转载自http://topic.csdn.net/u/20081117/11/2cf68184-87b8-4e12-b3b9-b8c2ecf635d8.html
powerpoint也一样,"System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);"释放所有引用,最后System.GC.Collect();
C# code
object objmissing = System.Reflection.Missing.Value;
Excel.ApplicationClass application = new ApplicationClass();
Excel.Workbook book = application.Workbooks.Add(objmissing);
Excel.Worksheet sheet = (Excel.Worksheet)book.Worksheets.Add(objmissing,objmissing,objmissing,objmissing);
//操作过程 ^&%&×&……&%&&……
//释放
sheet.SaveAs(path,objmissing,objmissing,objmissing,objmissing,objmissing,objmissing,objmissing,objmissing);
System.Runtime.InteropServices.Marshal.ReleaseComObject((object)sheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject((object)book);
application.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject((object)application);
System.GC.Collect();
分享到:
相关推荐
### C#无法关闭Excel进程的解决办法 在开发过程中,我们经常会遇到利用C#操作Excel文件的需求,尤其是在自动化办公或数据处理场景下。然而,在处理完毕后如何正确地释放资源并关闭Excel进程,是一个常见的问题。...
在`KillExcel`方法中,我们先获取Excel窗口的句柄(HWND),然后调用`GetWindowThreadProcessId`获取对应的进程ID。接着,使用`Process.GetProcessById`找到该进程并调用`Kill`方法来强制结束它。注意,这种方法虽然...
总的来说,处理C#操作Excel后关闭Excel.exe进程的问题,应优先保证资源的正确释放,如调用Excel对象的`Quit()`方法,然后通过适当的方式(如使用进程ID)安全地结束残留的进程。在实际开发中,还应考虑错误处理和...
在.NET编程环境中,尤其是C#,开发者经常需要与Microsoft Office应用程序如Excel进行交互,例如读取、写入或操作Excel工作簿。然而,在处理完Excel文件后,有时会出现Excel进程无法正常关闭的情况,这可能会影响其他...
当我们在C#或ASP.NET应用程序中使用Microsoft.Office.Interop.Excel库操作Excel文件后,如果未能正确释放资源或关闭Excel进程,则可能会出现Excel进程挂起的情况。这种情况不仅会占用系统资源,还可能导致程序运行...
- **知识点详解**:在C#中管理Excel进程的关键在于确保每个打开的Excel实例都被适当地关闭和释放资源。这包括但不限于: - 初始化Excel对象。 - 正确地打开和关闭工作簿。 - 在不再需要时释放COM对象。 - 强制...
// 释放资源 SQLFreeHandle(SQL_HANDLE_STMT, hstmt); SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC, hdbc); SQLFreeHandle(SQL_HANDLE_ENV, henv); ``` 5. 写入数据:写入数据的过程类似,但需要执行INSERT...
在这个例子中,`x`和`y`分别代表相对于屏幕左上角的绝对坐标,`MOUSEEVENTF_ABSOLUTE`标志表示坐标是绝对值,`MOUSEEVENTF_LEFTDOWN`和`MOUSEEVENTF_LEFTUP`则表示按下和释放左键。 需要注意的是,`SendInput`函数...
C#的垃圾回收机制在一定程度上简化了这个问题,但开发者仍需注意对非托管资源(如数据库连接、文件句柄)的释放。 9. **异常处理**:为了确保程序的稳定性和健壮性,良好的异常处理机制是必要的。使用`try-catch-...
6、解决了原EasyReport报表组件由于资源释放不及时,在多次重复使用时占用大量句柄而可能产生的不能打印或预览问题。 7、解决了DataGridView在有固定列(冻结列)的时候,有些情况下(DGV固定列的index与...