<script language=javascript>
var xlApp,xlBook,xlSheet;
xlApp = new ActiveXObject("Excel.Application");
xlBook = xlApp.Workbooks.Add();
xlSheet = xlBook.Worksheets(1);
xlSheet.Cells(1,1).Value = "测试";
xlSheet.Application.Visible = true;
xlApp.DisplayAlerts = false;
xlBook.Close();
xlApp.DisplayAlerts = true;
xlApp.Quit();
</script>
脚本运行完毕之后,还有一个excel大约20M的进程在内存中运行,怎么办?
解决办法
<HTML>
<BODY>
<INPUT type="button" value="Automate Excel" name=AutomateExcel onclick="StartExcel()">
<SCRIPT LANGUAGE=Javascript>
var idTmr = "";
function StartExcel() {
var oExcel;
oExcel = new ActiveXObject("Excel.Application");
oExcel.Quit();
oExcel = null;
idTmr = window.setInterval("Cleanup();",1);
}
function Cleanup() {
window.clearInterval(idTmr);
CollectGarbage();
}
</SCRIPT>
</BODY>
</HTML>
参见
http://support.microsoft.com/kb/266088/en-us
--------------------------------------------------------------------------------
分享到:
相关推荐
在使用VB/VBA编程语言操作Excel时,经常会遇到一个令人头疼的问题:尽管已经执行了`xlapp.Quit` 和 `Set xlapp = Nothing`来关闭Excel应用并释放相关资源,但Excel进程仍然在任务管理器中持续运行,无法完全关闭。...
然而,操作完成后,如果不正确地关闭Excel进程,可能会导致文件被占用,影响其他程序的运行。本文将深入探讨如何在C#编程环境中,通过代码彻底关闭Excel进程“excel.exe”。 首先,我们需要理解什么是进程。在操作...
例如,在调用`wb.Close()`、`wbb.Close()`及`excel.Quit()`之后,使用`Marshal.ReleaseComObject()`来释放资源,有时依然无法完全关闭Excel进程。 #### 解决方案 为了解决这一问题,我们可以采取以下步骤: 1. **...
- **知识点概述**:为了有效管理Excel进程,确保每次操作结束后都能正确关闭Excel进程,可以采用特定的技术手段。 - **知识点详解**:在C#中管理Excel进程的关键在于确保每个打开的Excel实例都被适当地关闭和释放...
在上述代码中,`myExcel.Quit()`停止Excel进程,`Marshal.ReleaseComObject(myExcel)`强制释放Excel对象的引用,这样可以确保COM对象不再被引用,从而允许垃圾收集器回收它。 2. 接下来,在函数执行完毕后,调用`GC...
在使用C#编程时,有时我们需要操作Excel进行数据读写,但操作完成后,可能会遇到Excel进程无法正常关闭的问题。这通常是因为程序没有正确地释放Excel应用程序实例或工作簿对象,导致进程仍然在后台运行。本篇文章将...
然后,通过比较当前操作的Excel进程ID与其他存在的Excel进程ID,确定目标进程并执行关闭操作。这里的关键在于,当生成完Excel文件后,不仅需要调用`xlApp.Quit()`来关闭Excel应用程序,还需要通过`Marshal....
如果使用EPPlus,由于没有启动Excel进程,所以不需要特别关闭。 需要注意的是,使用Interop可能导致进程悬挂的问题,尤其是在服务器环境。因此,确保正确释放COM对象至关重要,可以使用`Marshal.ReleaseComObject()...
- 当上述两种方法不能解决问题时,可以通过调用Windows API来强制结束Excel进程。 - 以下是具体实现步骤: 1. **获取Excel窗口句柄**:通过`Excel.Application.Hwnd`属性获取Excel窗口的句柄。 2. **获取进程ID*...
由于Excel是多线程的应用程序,系统默认的垃圾回收机制可能无法立即关闭它,这时我们需要手动结束Excel进程。下面将详细讲解如何在C#中实现这一目标。 首先,你需要在你的C#项目中引入Microsoft.Office.Interop....
在Delphi编程环境中,使用ExcelApplication控件可以方便地与Microsoft Excel进行交互,实现对Excel电子表格的创建、读取和修改等操作。这个控件是通过自动化接口(Automation Interface)来实现的,允许Delphi程序...
### 安全彻底关闭实例Excel.Application后产生的进程方法 在.NET框架中,通过COM互操作技术,我们可以方便地操作Microsoft Office应用程序,例如Excel。但在实际应用过程中,经常会遇到因为资源释放不当导致的进程...
上述代码展示了基本的操作流程,但请注意,使用COM组件可能会导致一些问题,例如Excel进程无法正常关闭。为了避免这些问题,可以考虑使用其他开源库,如EPPlus,它不需要安装Office,性能更好且更稳定。 在提供的...
在C#中,使用`Microsoft.Office.Interop.Excel`命名空间的`Application`类可以直接与Excel应用程序进行交互,但这种方法存在一个问题,即在生成Excel文件后,如果不正确地关闭,会导致Excel进程(EXCEL.EXE)持续...
然而,无论是哪种方法,都可能出现一个问题:即使主程序已经结束,Excel进程仍然存在。这是因为Excel被设计为多线程 apartment (MTA) 应用程序,当其作为子组件时,可能会导致进程无法正常关闭。为了解决这个问题,...
使用 `Quit` 方法结束 Excel 应用程序进程。 ``` ExcelSheet.Application.Quit(); ``` 或者: ``` XLObj.Quit(); XLObj=null; ``` 7. 页面设置 使用 `PageSetup` 对象设置页面边距、页眉和页脚等属性。 ``` ...
2. 创建一个OLE服务器实例,这将启动Excel进程: ```tcl set excel [::Ole2::auto_load -role application {Microsoft Excel Application}] ``` 3. 打开一个现有的Excel文件或创建一个新的工作簿: ```tcl $...
这种方式不需要运行Excel进程,适合服务器环境或者大量数据处理。 4. **错误处理和资源管理**:在VC++中处理Excel时,必须妥善处理可能出现的错误,如文件不存在、权限问题等,并确保在操作完成后正确关闭和释放...
在C#代码中,首先需要创建一个Excel Application对象,这允许你启动Excel进程并操作工作簿和工作表。 ```csharp using Excel = Microsoft.Office.Interop.Excel; Excel.Application excelApp = new Excel....
2. **创建Excel应用程序对象**:在C#代码中,首先需要实例化一个`Excel.Application`对象,这将启动Excel进程。 ```csharp using Excel = Microsoft.Office.Interop.Excel; Excel.Application excelApp = new Excel...