在PHP中使用COM类

时间:2011-12-23 11:20:14

标签: php excel 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服务器上执行此代码时,它无法正常工作。有人可以帮助我这个代码中的问题在哪里。

2 个答案:

答案 0 :(得分:4)

我建议您使用PHPExcel而不是COM。

COM非常慢,只能在Windows上运行,而且你必须在服务器上安装办公室,这会浪费许可证。

答案 1 :(得分:0)

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

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

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

http://spreadsheetlight.com/

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

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