在我的PHP页面中调用和关闭EXCEL的代码如下
//--------------------------------------
$file_path="g:\www\a.xls";
$sheet_name = 1;
$excel_app = new COM("Excel.application") or Die ("连接EXCEL应用程序组件错误");
$workbook = $excel_app->workbooks->Open("$file_path") or Die("Did not open EXCEL FILE");
$worksheet = $workbook->worksheets($sheet_name);
$worksheet->activate;
……
//这部分代码很多,包括了读取EXCEL,操作数据库等很多函数
//页面执行时间需要2、3秒钟
……
//这里是写在网页的最后
$workbook->Close;
unset($worksheet);
unset($workbook);
$excel_app->workbooks->close();
$excel_app->quit();
unset($excel_app);
//-------------------------------------问题:
如果客户端页面正常执行完,进程中的EXCEL进程会被释放
但是如果在客户端页面未执行完,关闭或停止了该页面的话,释放EXCEL的代码就不会被执行,因此EXCEL就不能被释放。我这里有两个设计思路,但不知道怎么写代码。希望高手指点一下或者提供一段好的代码:构思1:
在此页面中加入一个JS函数
<script language="javascript">
//通过window.onbeforeunload()函数,在页面关闭时,关闭EXCEL.APPLICATION
function window.onbeforeunload()
{
//这里怎么写释放EXCEL的代码?
}
</script>构思2:
<body onbeforeunload="window.location=a.php"> //这段代码我觉得是行不通的<body onbeforeunload="关闭EXCEL的函数">

解决方案 »

  1.   

    能提供一个
    通过JAVASCRIPT来插入另一个网页脚本到本页的代码也行呀。
    就像include一样功能的就行
      

  2.   


    if (connection_aborted())
    {
    echo "用户掉线了";die();
    }
    # 多放几个-_-!
      

  3.   

    以前也很期待php与com,现在才不这样做
      

  4.   

    有时候,com的进程还在运行,是关不了的。
      

  5.   

    其实只要用的php5以上版本,使用析构函数可以在程序运行结束自动结束进程。
    这个,我已经做过测试了。