在IIS上加载期间,PHPExcel导入失败

在IIS上加载期间,PHPExcel导入失败,php,windows,iis,phpexcel,Php,Windows,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 {

我正在使用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();
    }
不幸的是,“启动…”之后没有进一步的输出,尽管IIS日志中没有显示或跟踪错误。文件路径正确(已尝试/和/),并且具有适当的权限。也没有引发异常(tkx@Mark)

请告知:

1) 有没有办法启用某种调试来查看PHPExcel的确切停止位置以及(可能)原因


2) 要在Windows和IIS上运行此代码,我需要做哪些更改。

您尝试过使用XDebug吗?您将需要一个像Netbeans或phpDesigner这样的IDE来支持它

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

启动调试器并逐行检查每一行,直到错误发生,您可能知道是什么导致了问题。这需要很大的耐心


祝你好运

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

extension=php_zip.dll

仍然奇怪的是没有引发异常。

我遇到了相同的问题,并通过添加以下行解决了它:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
以下是PHPExcel文档中的解释:

PHP抱怨没有找到ZipArchive

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

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
在调用Excel2007编写器的save方法之前。您可以恢复 要使用ZipArchive,请调用:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
PHPExcel_Settings::setZipClass(PHPExcel_Settings::ZIPARCHIVE);
目前,这只允许您在不使用 需要ZipArchive(不需要阅读Excel2007或OOCal)


如果不了解更多关于配置的信息,就很难说出哪里出了问题。我让PHPExcel与IIS一起工作,没有任何问题。通常,加载文件失败会产生一些错误。你能把所有的东西都放在一个try/catch块中,看看是否有异常出现吗?谢谢你,马克,我添加了一个try&catch。不幸的是,没有例外。我还尝试了一个错误的路径&文件名,在这种情况下会抛出一个异常,因此我的代码似乎是正确的。这使得识别问题变得非常困难。读卡器代码中有一些回音被注释掉了,但是如果在Debian上的Apache下使用相同的代码加载相同的文件,那么肯定是IIS或配置问题。首先,我要仔细检查ZipArchive和SimpleXML是否已正确安装和启用。