1
此代碼正常工作,直到它到達打開的工作簿行,然後失敗。PHP無法通過COM打開Excel工作簿
<?PHP
$file = "C:\\xampp\\htdocs\\php\\test.xls";
openWorkbook($file);
function openWorkbook($file)
{
$excel = new COM("Excel.Application") or die ("ERROR: Unable to instantaniate COM!\r\n");
echo "Application name: {$excel->Application->value}\r\n";
echo "Loaded version: {$excel->Application->version}\r\n";
// FAILS ON THIS LINE!
$Workbook = $excel->Workbooks->Open($file) or die("ERROR: Unable to open " . $file . "!\r\n");
}
有沒有人有任何建議,爲什麼這可能會發生?我看過很多其他帖子,但沒有人似乎有這個具體問題。
首先感謝您的幫助。我試過你的建議,但無濟於事。具體的或不是特定的錯誤,我得到的是「致命的錯誤:在22行C:\ xampp \ htdocs \ php \ ExcelReader.php」。第22行是嘗試打開工作簿的行。 php.ini文件是如下... [COM_DOT_NET] 延長= php_com_dotnet.dll [COM] com.allow_dcom =真 com.autoregister_typelib =真 com.autoregister_casesensitive =假 ; COM。 autoregister_verbose = true – user3032510
@ user3032510如果你的問題與ini設置有關,我會感到很驚訝,如果你對擴展本身有問題並且你的設置不會創建區分大小寫的話,我預計它會在'new COM'行失敗方法,這是我通過這個簡單的操作可以看到的唯一的其他潛在問題。請注意,COM將在錯誤時拋出異常,所以你或者die()並沒有多大意義 - 嘗試在try/catch中封裝函數體並回應異常消息。根據我的經驗,拋出的信息還是相當無用的,但你永遠不知道。 – DaveRandom