在IIS上加载PHPExcel导入失败

我正在使用PHPExcel从XLSX文件读取数据。 一切工作正常在Debian和Apache,但它在初始加载期间在IIS上失败:

$input = "C:/Inetpub/wwwroot/import/data/test.xlsx"; $objReader = new PHPExcel_Reader_Excel2007(); $objReader->setReadDataOnly(true); print "Starting..."; try { $objPHPExcel = $objReader->load($input); print("Done!"); } catch (Exception $e) { print "Caught exception: " . $e->getMessage(); } 

不幸的是,在“开始…”之后没有进一步的输出,尽pipe在IIS日志中没有显示和跟踪错误。 文件path是正确的(同时尝试/和/)并具有适当的权限。 也没有提出exception(tkx @马克)。

请指教:

1)有没有一种方法来启用某种debugging来查看PHPExcel停止的位置(可能)为什么?

2)我需要改变这个代码在Windows和IIS上运行。

你有没有尝试过使用XDebug? 你将需要一个像Netbeans或者phpDesigner这样的IDE来支持它。

然后使用所有文件创建项目,打开该文件进行读取,并在运行的第一行代码中添加一个断点。

启动调试器,并逐步通过每一行,直到发生错误,你可能会有什么导致你的问题的线索。 这将需要很多的耐心。

祝你好运!

尝试确保在php.ini中启用zip扩展:

 extension=php_zip.dll 

仍然奇怪,没有例外抛出。

我有同样的问题,并通过添加以下行来解决它:

 PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); 

以下是来自PHPExcel文档的解释: https ://phpexcel.codeplex.com/wikipage ? title =常见问题&推荐标题= Home

PHP抱怨没有找到ZipArchive

确保你满足所有的要求,尤其是php_zip扩展应该被启用。 ZipArchive类仅在读取或写入使用Zip压缩的格式(Excel2007和OOCalc)时才是必需的。 从版本1.7.6开始,PCLZip库已经与PHPExcel捆绑在一起,作为ZipArchive类的替代品。 这可以通过调用:

 PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); 

在调用Excel2007 Writer的保存方法之前。 您可以通过调用恢复使用ZipArchive:

 PHPExcel_Settings::setZipClass(PHPExcel_Settings::ZIPARCHIVE); 

目前,这只允许你编写Excel2007文件,而不需要ZipArchive(不能读取Excel2007或OOCal)