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

时间:2011-03-20 12:06:16

标签: php windows iis phpexcel

我正在使用PHPExcel从XLSX文件中读取数据。一切都在Debian& amp; 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和Windows上运行IIS。

3 个答案:

答案 0 :(得分:0)

您是否尝试过使用XDebug?您将需要一个支持Netbeans或phpDesigner的IDE。

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

启动调试器并逐步执行每一行,直到发生错误,您可能知道导致问题的原因。这需要很多耐心。

祝你好运!

答案 1 :(得分:0)

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

extension=php_zip.dll

仍然很奇怪,没有例外。

答案 2 :(得分:0)

我遇到了同样的问题并通过添加以下行解决了这个问题:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);

以下是PHPExcel文档中的说明:https://phpexcel.codeplex.com/wikipage?title=FAQ&referringTitle=Home

  

PHP抱怨没有找到ZipArchive

     

确保您符合所有要求,尤其是php_zip扩展名   应该启用。只有在阅读时才需要ZipArchive类   或编写使用Zip压缩的格式(Excel2007和OOCalc)。   从版本1.7.6开始,PCLZip库已与PHPExcel捆绑在一起   作为ZipArchive类的替代品。这可以通过以下方式启用   主叫:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
     

在调用Excel2007 Writer的save方法之前。你可以还原   通过调用:

来使用ZipArchive
PHPExcel_Settings::setZipClass(PHPExcel_Settings::ZIPARCHIVE);
     

目前,这只允许你在没有的情况下编写Excel2007文件   需要ZipArchive(不读取Excel2007或OOCal)