在PHP中使用COM类

我正在使用下面的代码来访问PHP中的Excel文件。

$excel = new COM("Excel.application",,) or die ("ERROR: Unable to instantaniate COM!\r\n"); // DATA RETRIEVAL $Workbook = $excel->Workbooks->Open($file) or die("ERROR: Unable to open " . $file . "!\r\n"); $Worksheet = $Workbook->Worksheets($sheet); $Worksheet->Activate; 

上面的代码在本地机器上工作,但是当我尝试在任何Web服务器上执行此代码,然后它不工作。 有人能帮助我这个代码中的问题在哪里。

我build议你使用PHPExcel而不是COM。

COM真的很慢,只能在windows上工作,而且你必须在一个服务器上安装办公室,这是浪费许可证。

您需要将Excel安装在您的服务器上+ php进程需要正确的权限才能访问COM应用程序。

过去,我们在Office Interop上遇到过很多麻烦,我build议不要这样做。 如果您的进程发生任何事情,Excel实例在服务器上保持打开状态,这些实例占用大量内存。

您最好使用利用OpenXML规范的库,例如Spreadsheetlight:

http://spreadsheetlight.com/

你可以从PHP使用它,这里有一个例子:

http://www.drupalonwindows.com/en/blog/importing-excel-data-php-openxml-and-spreadsheetlight-drupal-example