在我的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的函数">
//--------------------------------------
$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的函数">
通过JAVASCRIPT来插入另一个网页脚本到本页的代码也行呀。
就像include一样功能的就行
if (connection_aborted())
{
echo "用户掉线了";die();
}
# 多放几个-_-!
这个,我已经做过测试了。