在PHP中,我使用COM-object创建一个XLS文件。
$excel = new COM("Excel.Application") or die("Excel is not installed!");
$excel->WorkBooks->Add();
...
$excel->WorkBooks[1]->SaveAs($path);
$excel->Quit();
$excel->Release();
$excel = null;运行此代码后,Excel.exe进程仍将在内存中保留约6分钟。如何强制此进程立即退出?
发布于 2012-01-26 01:48:47
您正在使用COM对象,所以您一定是在谈论Windows上的php。基本上,您可以使用命令行工具taskkill终止任务。可以使用php命令shell_exec调用它,如下所示
shell_exec('taskkill /F /IM "excel.exe"');如果您没有权限(但我认为您应该有权限,因为您启动了此进程),请使用runas运行cmd行。
但!您使用的是php,所以如果您在web环境中运行此程序,并且人们同时访问您的网站,那么您可能有多个Excel实例在运行。如果是这样的话,你就得找出你想杀的是哪一个。
发布于 2012-01-26 02:04:16
该进程会停留一段时间,以防另一个"Excel.Application“对象被请求,在这种情况下,我们可以避免启动新进程和加载所有all的成本。
我只会把它当做一个特色。
发布于 2012-07-31 22:21:28
还有另一种方法..。尝试取消初始化COMS。不是只做一次,而是做四次。这是通过试验和错误建立的,所以除了它可以工作之外,我没有有效的理由。然而,这并不总是有效的。它可能在你的情况下就行得通
https://stackoverflow.com/questions/9003597
复制相似问题