我正在使用以下代码访问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服务器上执行此代码时,它无法正常工作。有人可以帮助我这个代码中的问题在哪里。
答案 0 :(得分:4)
我建议您使用PHPExcel而不是COM。
COM非常慢,只能在Windows上运行,而且你必须在服务器上安装办公室,这会浪费许可证。
答案 1 :(得分:0)
您需要在服务器上安装Excel + php进程需要正确的权限才能访问COM应用程序。
过去我们在使用Office Interop方面遇到了很多麻烦,我建议不要这样做。如果您的进程发生任何事情,Excel实例将在服务器上保持打开状态,这些实例会占用大量RAM。
最好使用利用OpenXML规范的库,例如Spreadsheetlight:
你可以在PHP中使用它,这里有一个例子: